perl 5.12.4 を実行しています return ステートメント内または事前にハッシュが割り当てられている場合、関数の結果の間に不一致が生じます。最も簡単な例は次のとおりです。
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
return ステートメント (2 番目の例) でハッシュに (再) 割り当てを行うと、返されたハッシュが破損するのはなぜですか?