在Perl中查找哈希数组的大小

mam*_*aye 1 arrays perl hash

你如何得到以下哈希数组的大小?

我以为这会做到,但它不起作用......

print Dumper scalar $item->{'detail'};
$VAR1 = [
    { 'content' => undef, 'name' => 'entree',  'url_name' => 'entree' },
    { 'content' => undef, 'name' => 'dessert', 'url_name' => 'desert' },
    { 'content' => undef, 'name' => 'drink',   'url_name' => 'drink'  }
];
Run Code Online (Sandbox Code Playgroud)

或者如何url_name在不知道尺寸的情况下打印哈希数组中的所有(主菜,沙漠,饮料)?

per*_*eal 8

你有一个数组引用.要获取引用数组的大小,请首先取消引用引用:

print scalar @{$item->{'detail'}};
Run Code Online (Sandbox Code Playgroud)

并列出网址:

my $v = [
      { 'content' => undef, 'name' => 'entree', 'url_name' => 'entree' },
      { 'content' => undef, 'name' => 'dessert', 'url_name' => 'desert' },
      { 'content' => undef, 'name' => 'drink', 'url_name' => 'drink' }
];   # or $v = $item->{'detail'};

foreach my $h (@$v) {
  print $h->{url_name}, "\n";
}
Run Code Online (Sandbox Code Playgroud)