1

我必须用其各自的哈希值替换哈希中的所有键。此操作在文件中执行。

下面是我的代码:

my $file= 'IFandENDIF.txt';
my $bak= "$file.bak";
rename $file, $bak or die "cannot rename $file into $bak: $!";

open( my $in,  '<', $bak)  or die "cannot open $bak: $!";
open( my $out, '>', $file) or die "cannot create $file: $!";

while( <$in>)
{ 
    s/if(exists(%replstr))/$replstr{$1}/xeg;    
    print {$out} $_;   
}

close $in; 
close $out;

请指导我。

4

1 回答 1

2

用哈希值替换所有键实例:

while ( my $line = <$in> ) {

    $line =~ s/$_/$replstr{$_}/g for keys %replstr;
    print $out $line;
}

请注意,/e修饰符将替换视为代码,而不是模式

于 2012-09-18T07:06:10.380 回答