perl:打印对象属性名称和值

时间:2016-12-10 13:50:59

标签: perl

以下内容:

for my $z (@$y) {                               
  # prints number of observables for a given activity summary
  # print STDERR 'property count'.keys $z
  print Dumper($z);
}

打印:

$VAR1 = {
          'activity' => 'walking',
          'duration' => '591',
          'calories' => 26,
          'distance' => '435',
          'steps' => 871,
          'group' => 'walking'
        };
$VAR1 = {
          'steps' => 168,
          'group' => 'walking',
          'distance' => '100',
          'activity' => 'walking',
          'duration' => '200',
          'calories' => 6
        };

如何迭代每个属性并打印其名称和值?我正在使用perl。

2 个答案:

答案 0 :(得分:4)

这是一种方式:

for my $z (@$y) {
    for my $k (keys %$z) {
        print "$k: $z->{$k}\n";
    }
}

有关keys的更多信息,请参阅perldoc -f keys; perldoc perldata有关哈希的一般信息(因为您的$z值是哈希引用,而不是对象); perldoc perlreftut用于引用和嵌套数据结构。

答案 1 :(得分:0)

你可以试试这个:

my $z = {
      'activity' => 'walking',
      'duration' => '591',
      'calories' => 26,
      'distance' => '435',
      'steps' => 871,
      'group' => 'walking'
    };


while((my $key, my $value) = each (%{$z})){
    print "key : $key -> value : $value\n";
}