简体   繁体   English

在Perl中取消对哈希数组的引用?

[英]Dereferencing on an Array of Hashes in Perl?

The data is stored in @emailaddresses as follows: 数据存储在@emailaddresses中,如下所示:

$VAR1 = { 'email' => 'abc@google.com' };
$VAR2 = { 'email' => 'cde@google.com' };
$VAR3 = { 'email' => 'efg@google.com' };
$VAR4 = { 'email' => 'hij@google.com' };

When I print @emailaddresses (print @emailaddresses), it prints HASH(0x...) instead of the values in the array. 当我打印@emailaddresses(打印@emailaddresses)时,它将打印HASH(0x...)而不是数组中的值。 How can I print the values? 如何打印值?

Simply loop through your array and print out each addresses 'email' value: 只需遍历数组并打印出每个地址的“电子邮件”值即可:

my @emailaddresses = ...;

for my $addr ( @emailaddresses ) {
   print $addr->{email}, "\n";
}

better yet, wrap this logic in a function: 更好的是,将此逻辑包装在一个函数中:

sub print_email_addresses {
   my @addresses = @_;

   for my $addr ( @addresses ) {
      print $addr->{email}, "\n";
   }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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