只是想知道我做错了什么或者这是一个perl bug …我想创建一个哈希值数组.我正在使用’push’将值放到数组中.第一次向数组写入哈希工作正常,但是当我将第二个不同的哈希值推送到数组时,第一个数组元素似乎被我刚刚推入数组的内容覆盖了.为什么会这样?见下面的代码:
use Data::Dumper; my %val; %val = (key1 => "Val1"); my @myArr; my $cnt = push(@myArr,\%val); print "After push (should contain 1 element): " . Dumper(@myArr) . "\n"; %val = (key2 => "Val2"); my $cnt = push(@myArr,\%val); print "After push 2: (should contain 2 different elements):" . Dumper(@myArr) . "\n"; print " You can see above that element 1 and 2 of the array equal each other when they should be different\n";
解决方法
“perl bug” – 是的,机会很大.