0

我正在创建一个小程序来查找特定的哈希键并替换其源,但为此我需要找到整个哈希并将其替换为用户输入的值的新哈希。

我的代码示例。

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,该文​​件包含在程序中。

4

2 回答 2

0

可能你的时间应该读

while ($var1 = <IN>) {
   ...
}
于 2012-04-09T16:10:19.693 回答
0

正如 Ether 上面建议的那样,另一种选择是“执行”您的 pl 文件并直接更改哈希值。

my $hash = do "info.pl";
if (exists($hash->{$EditSmile})) {
    $hash->{$EditSmile} = $EditText;
}
use Data::Dumper;
print Dumper($hash);
于 2012-04-09T16:43:14.343 回答