gpt4 book ai didi

perl - 有人可以解释 Perl 中的哈希吗?

转载 作者:行者123 更新时间:2023-12-01 05:54:22 24 4
gpt4 key购买 nike

主功能:

my %hash = {'inner1'=>{'foo'=>5},
'inner2'=>{'bar'=>6}};
$object->State(0, %AMSValues);

寄去:
sub State
{
my ($self, $state, %values) = @_;
my $value = \%values;

据我所知,一个应该是散列,另一个是指针,但是......

Hash Values

图片好像不行,所以
$value = $value->{"HASH(0x52e0b6c)"}
%values = $values->{"HASH(0x52e0b6c)"}

最佳答案

use warnings;总是。

您的:

my %hash = {'inner1'=>{'foo'=>5},
'inner2'=>{'bar'=>6}};

是不正确的; {}生成一个匿名散列引用,%hash 得到一个单一的键(该散列引用字符串化)和一个 undef 值。

你自找的:
my %hash = ('inner1'=>{'foo'=>5},
'inner2'=>{'bar'=>6});

就传递给子程序而言,您不能传递哈希值;像你展示的代码将散列平展成一个列表,然后从 @_ 重新组装一个散列,但这将是一个单独的副本。如果您确实想要相同的散列,则必须改为传递散列引用。

关于perl - 有人可以解释 Perl 中的哈希吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6191194/

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