【问题标题】:perl: Print object property names and valuesperl:打印对象属性名称和值
【发布时间】:2016-12-10 13:50:59
【问题描述】:

以下内容:

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。

【问题讨论】:

标签: perl


【解决方案1】:

这是一种方法:

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

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

【讨论】:

    【解决方案2】:

    你可以试试这个:

    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";
    }
    

    【讨论】:

    • 通常不推荐使用each,因为它使用存储在哈希本身中的迭代器状态。这可能会导致奇怪的远距离操作错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-10
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 2013-06-10
    • 2018-12-28
    相关资源
    最近更新 更多