perl – 为什么将哈希推送到数组似乎会覆盖所有数组元素?

前端之家收集整理的这篇文章主要介绍了perl – 为什么将哈希推送到数组似乎会覆盖所有数组元素?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
只是想知道我做错了什么或者这是一个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” – 是的,机会很大.

猜你在找的Perl相关文章