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 に答える