Perl - 在另一个文件中搜索并替换哈希值

时间:2012-04-09 16:06:34

标签: perl hash replace

我正在创建一个迷你程序来查找特定的哈希键并替换它的源代码,但为了做到这一点,我需要找到整个哈希并用新哈希替换用户输入的值。

我的代码示例。

print "Please input the smile you would like to edit: ";
$EditSmile = <STDIN>;
print "Please input the text you want to change: ";
$EditText = <STDIN>;

open (IN, "< info.pl") || die("Can not open file: $!");

while (<IN>){
    $var1 =~ s/\'$EditSmile\' => "$smileinfo{"$EditSmile"}"/\'$EditSmile\' => "$EditText"/g;
    print $var1;    
}

哈希值在文件info.pl中,包含在程序中。

2 个答案:

答案 0 :(得分:0)

可能你应该阅读

while ($var1 = <IN>) {
   ...
}

答案 1 :(得分:0)

上面提到的另一个选项是“执行”你的pl文件并直接更改哈希值。

my $hash = do "info.pl";
if (exists($hash->{$EditSmile})) {
    $hash->{$EditSmile} = $EditText;
}
use Data::Dumper;
print Dumper($hash);