从Perl数组中提取数据散列引用

siv3szwd  于 2022-11-15  发布在  Perl
关注(0)|答案(2)|浏览(144)

我是Perl的新手。我正在从一个函数返回一个引用数组。但是我对如何循环数据感到困惑。

sub whatever{
  my %product;
  my %resolution;
  my @data = ();
  push @data, \%product;
  push @data, \%resolution;
  return @data;
}

在控制子模块中。

my @results = $whatever($dt_id);
$c->app->log->debug(Dumper(@results));

成果

$VAR1 = {'IOP' => 'IOP'};
$VAR2 = {'4km' => '4km','9km' => '9km'};

我得到了两个哈希值,但如何循环使用它们。

332nm8kg

332nm8kg1#

要分别返回两个哈希值:

return (\%product, \%resolution);

要Map它们,请执行以下操作:

my ($product, $resolution) = whatever(...);
for my $key (%$product) {
    # do something with $product->{$key};
}
xmakbtuz

xmakbtuz2#

试试这个:

for my $hash_ref (@results) {
  for my $key (keys %$hash_ref) {
    say "key '$key' has value '$hash_ref->{$key}'";
  }
}

相关问题