Perl   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了数组 – 如何在perl中访问哈希数组?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一大堆哈希,我想从数组中获取一些哈希并插入新数组而不更改第一个数组.我有问题将哈希推送到数组,如何访问作为哈希的第i个元素. @H_806_2@my @myarray; $my_hash->{firstnamE} = "firstname"; $my_hash->{lastnamE} = "lastname"; $my_hash->{agE} = "25"; $my_hash->{LOCATIOn} = "WI"; push @myarray,$my_hash; $my_hash->{firstnamE} = "Lily"; $my_hash->{lastnamE} = "Bily"; $my_hash->{agE} = "22"; $my_hash->{LOCATIOn} = "CA"; push @myarray,$my_hash; $my_hash->{firstnamE} = "something"; $my_hash->{lastnamE} = "otherthing"; $my_hash->{agE} = "22"; $my_hash->{LOCATIOn} = "NY"; push @myarray,$my_hash; my @modifymyhash; for (my $i=0;$i<2; $i++) { print "No ".$i."\n"; push (@modifymyhash,$myarraY[$i]); print "".$myarraY[$i]."\n"; #How do I print first ith element of array which is hash. }

解决方法

首先你应该
use Strict;
use warnings;

然后定义

@H_806_2@my $my_hash;

在分配值之前初始化$my_hash,否则您将覆盖它,并且所有三个元素都指向相同的哈希

$my_hash = {};

最后,访问哈希的成员

$myarraY[$i]->{firstnamE}

或者要打印整个哈希,例如可以使用Data::Dumper

print Dumper($myarraY[$i])."\n";

或其他一些方法,How can I print the contents of a hash in Perl?How do I print a hash structure in Perl?

更新您的评论:

你复制哈希

push (@modifymyhash,$myarraY[$i]);

进入新阵列,完美运作.你可以验证

foreach my $h (@myarray) {
    print Dumper($h),"\n";
}

foreach my $h (@modifymyhash) {
    print Dumper($h),"\n";
}

这两个数组都有相同的哈希值.

如果要创建深层副本,而不仅仅是引用,则可以分配新哈希并将第i个元素复制到副本中.然后将副本存储在@modifymyhash中

@H_806_2@my $copy = {}; %{$copy} = %{$myarraY[$i]}; push (@modifymyhash,$copy);

大佬总结

以上是大佬教程为你收集整理的数组 – 如何在perl中访问哈希数组?全部内容,希望文章能够帮你解决数组 – 如何在perl中访问哈希数组?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。