⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subst.pl

📁 S60 SDL is a Simple DirectMedia Layer adaptation for S60. SDL is a cross-platform multimedia library
💻 PL
字号:
use strict;

my $fname = $ARGV[0];
my @prepattern = split(/!!/, $ARGV[1]);
my @pattern = split(/!!/, $ARGV[2]);
my @subst = split(/!!/, $ARGV[3]);

foreach my $f (@prepattern)
	{
	#print "*$f\n";
	}

open(IN, "$fname") or die "subst error $fname: $!\n";

my @lines;
my @backup;
my $matchcount = 0;

while(<IN>)
	{
	if($matchcount < @prepattern)
		{
		if(/$prepattern[$matchcount]/)
			{
			++$matchcount;
		#	print ">$_";
			}
		else
			{
			$matchcount = 0;
			}
		push(@lines, $_);
		}
	else
		{
		if($matchcount < @pattern + @prepattern)
			{
			my $patcount = $matchcount - @prepattern;
			if(/$pattern[$patcount]/)
				{
				++$matchcount;
				push(@backup, $_);
			#	print "--$_";
				}
			else
				{
				push(@lines, @backup);
				push(@lines, $_);
				@backup = ();
				$matchcount = 0;
				}
			}
		else
			{
			push(@lines, "/*S60 installer change - start*/\n");
			foreach my $s (@subst)
				{
				push(@lines, "$s\n");
				}
			push(@lines, "/*S60 installer change - end*/\n");
			@backup = ();
			$matchcount = 0;
			push(@lines, $_);
			}
		}
	}

close(IN);

#exit;

open(OUT, ">$fname") or die "subst error $fname: $!\n";

print OUT @lines;

close(OUT);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -