我曾经多次看到以下这段代码,用于将一个哈希表连接到另一个哈希表中:
%hash1 = ('one' => "uno");
%hash2 = ('two' => "dos", 'three' => "tres");
@hash1{keys %hash2} = values %hash2;
我曾认为每次调用“values”或“keys”函数时,它们的输出顺序都是随机的。如果这是真的,那么为什么上面的语句能够在两侧正确地获取键和值?
换句话说,在合并两个哈希后,为什么没有机会在%hash1中获得“two”=>“tres”?Perl是否聪明到知道如果在同一行上调用“keys”和“values”,则必须按相同顺序给出键和值?