简体   繁体   English

取消引用 perl 中的哈希数组。 实验警告

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM