[英]Dereference array of hashes in perl. experimental warning
I am getting a warning when accessing my array.访问我的数组时收到警告。 This is probably a unperl way to loop but I am teaching myself perl and I am trying different scenarios.
这可能是一种 unperl 循环方式,但我正在自学 perl 并且我正在尝试不同的场景。 I can loop over the
%user
but didn't know how to loop over the array hash ref?我可以遍历
%user
但不知道如何遍历数组 hash 参考?
my %user;
$user{mike}{emp_id} = 1;
$user{john}{emp_id} = 2;
my @user = \%user;
foreach my $value_hash (@users)
{
#error line
foreach my $key (keys $value_hash)
{
foreach my $id (keys %{ $users{$key} })
{
print "name: $key\t$id: $users{$key}{$id}\n";
}
}
print "\n";
}
keys EXPR
was an experiemental feature that has already been abandoned and removed. keys EXPR
是一项实验性功能,已被废弃和删除。
$ 5.22t/bin/perl -e'my $h = {}; keys $h;'
keys on reference is experimental at -e line 1.
$ 5.24t/bin/perl -e'my $h = {}; keys $h;'
Experimental keys on scalar is now forbidden at -e line 1.
The proper ways to use keys
is使用
keys
的正确方法是
keys HASH
keys ARRAY
Replace代替
keys $value_hash
with和
keys %$value_hash
or或者
keys %{ $value_hash }
You already used it correctly the second time around.您已经第二次正确使用了它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.