有沒有一種有效的方法來用一個Perl哈希中的值替換一堆字符串?來自hash的Perl正則表達式替代
例如,
$regex{foo} = "bar";
$regex{hello} = "world";
$regex{python} = "perl";
open(F, "myfile.txt");
while (<F>) {
foreach $key (keys %regex) {
s/$key/$regex{$key}/g;
}
}
close(F);
有沒有辦法實現上述在Perl?
如果這些方法都失敗,請嘗試'eval'(http://perldoc.perl.org/functions/eval.html) – Nick
@Nick,那更糟糕的可能建議,儘量爲:
for
循環內我很關心。它怎麼可能有幫助!? – ikegami在Perl代碼的任何位置都無法替換變量--eval可讓您在字符串中擴展變量,然後以Perl代碼的形式執行該字符串。 eval「s/$ key/$ regex {$ key}/g」 – Nick