关于perl中哈希表反转有重复键的覆盖有关问题

关于perl中哈希表反转有重复键的覆盖问题
#!/usr/bin/perl -w
%test_hash=(
fred => 'wuchang',
dino => 'undef',
"licky" => "myboy",
"barney"=> rubble,
betty => 'rubble',
);
@hash_array=%test_hash;
print "@hash_array"." ";
%inverse_hash=reverse %test_hash;
print "inverse_hash[rubble]="."$inverse_hash{'rubble'}";

这是一段测试代码,我对%test_hash进行反转操作,得到%inverse_hash,由于%test_hash中有重复的值rubble,所以我测试了一下反转以后对于rubble键取值到底是得到barney还是betty,结果得到了barney……这和《perl语言入门第5版》讲的不一样阿……书中讲:当原哈希表的值有重复的时候,将其反转,那么反转以后的哈希表采用后发先至原则,用列表中最后的键覆盖之前的键……为什么这个例子中反而是barney覆盖了betty呢?我在将该哈希表赋值给数组展开的时候,barney也是在betty前面的……

------解决方案--------------------
在我电脑上,print "@hash_array"; 的结果是:
barney rubble licky myboy betty rubble dino undef fred wuchang

reverse 之后的列表是:
wuchang fred undef dino rubble betty myboy licky rubble barney

把列表赋给哈希之后,前面的 betty 被后面的 barney 覆盖了,这样说得通嘛。