运行perl 5.12.4 当在返回语句中或之前分配哈希时,函数结果存在差异。最简单的示例是:
perl -e 'sub s1 {
my @a=qw/b 1 c 2 a 3 a 4/;
my %h=@a;
return %h
}
print "@{[ s1()]}\n"'
c 2 a 4 b 1
perl -e 'sub s1 {
my @a=qw/b 1 c 2 a 3 a 4/;
my %h=@a;
return %h=@a
}
print "@{[ s1()]}\n"'
c 2 c 2 a c
为什么在返回语句中重新赋值哈希表(第二个例子)会破坏返回的哈希表?
b 1 c 2 a 4
。 - friedoThis is perl 5, version 12, subversion 4 (v5.12.4) built for darwin-thread-multi-2level
。 - chrsblck