微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决有人可以解释Perl中的哈希值吗?

| 主功能
my %hash = {\'inner1\'=>{\'foo\'=>5},\'inner2\'=>{\'bar\'=>6}};
$object->State(0,%AMSValues);
发给:
sub State
{
   my ($self,$state,%values) = @_;
   my $value = \\%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});
就传递给子例程而言,您不能传递哈希。如您所示的代码将哈希值展平到列表中,然后从
@_
重新组合哈希值,但这将是一个单独的副本。如果您实际上想要相同的哈希,则必须改为传递哈希引用。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。