gpt4 book ai didi

子程序返回中对哈希的 perl 赋值变得很奇怪

转载 作者:行者123 更新时间:2023-12-04 12:48:16 25 4
gpt4 key购买 nike

运行 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 语句(第二个示例)中(重新)分配给散列会破坏返回的散列?

最佳答案

因为一个bug。它似乎已在 5.14.0 中修复。 (存在于 5.12.4。不存在于 5.14.0)

最小测试用例:

perl -E"say %h = qw/b 1 c 2 a 3 a 4/"

关于子程序返回中对哈希的 perl 赋值变得很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16411109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com