2012-09-18 19 views
1

我必須用散列值替換散列中的所有鍵。該操作在文件中執行。用Perl中的值替換文件中的值

下面是我的代碼:

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; 

請指導我在此。

回答

2

要使用的哈希值替換鍵的所有實例:

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

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

注意,/e修改對待更換新代碼,而不是模式

+0

完美!謝謝Zaid – Spooferman

相關問題