无法循环通过一个受祝福的对象

时间:2015-03-26 11:43:34

标签: perl

我有一个数组导致以下变量,里面有祝福的对象。如何迭代它以获取每个变量的名称?

$VAR1 = [
  bless( {
    'name' => 'apple',
    'address' => 'kashmir'
  }),
  bless( {
    'name' => 'mango',
    'address' => 'chicago'
  })
];

$VAR1 = bless( {
  'name' => 'grape',
  'address' => 'amsterdam'
});

1 个答案:

答案 0 :(得分:1)

[...]表示$VAR1是数组引用,您可以使用@$VAR1取消引用。 (当然,将VAR1替换为变量的实际名称.Data :: Dumper无法看到实际的变量名称,因此将它们全部转换为VAR1。)一旦你&#39 ;已取消引用,您可以将其视为普通数组,循环遍历它,push ing,shift等等:

#!/usr/bin/env perl    

use strict;
use warnings;
use 5.010;

my $VAR1 = [
  bless( {
    'name' => 'apple',
    'address' => 'kashmir'
  }),
  bless( {
    'name' => 'mango',
    'address' => 'chicago'
  })
];

for my $item (@$VAR1) {
  say $item->{name};
}

输出:

apple
mango