【问题标题】:Printing only parts of a hash仅打印哈希的一部分
【发布时间】:2014-10-25 04:52:29
【问题描述】:

所以我在 perl 设置中有一个散列,每个字段都有多个值,我用它来将数据推送到散列中: push @{$user{$infoName}}, $information;。 例如。一个用户我有 3 个最喜欢的节目都存储为

{'favourite_TV_shows' => [ 'A Country Practice', 'All Saints', 'Falling Skies' ], 'weight' => [ '53kg' ]}

其中一些用户信息是私有的,例如体重,所以我要显示的字段存储在数组@fieldsToPrint = ['username','favourite_TV_shows']

我如何编写一个 foreach 循环来仅打印 feildsToPrint 数组中的字段。 以下是我迄今为止的尝试...

foreach ($user{$infoName} == @fieldsToPrint){
   #print
} 

【问题讨论】:

    标签: perl


    【解决方案1】:

    只需迭代您的 @fieldsToPrint 数组,跳过那些没有值的键:

    use strict;
    use warnings;
    
    my @fieldsToPrint = ( 'username', 'favourite_TV_shows' );
    
    my %user = (
        'favourite_TV_shows' => [ 'A Country Practice', 'All Saints', 'Falling Skies' ],
        'weight'             => ['53kg'],
    );
    
    for my $key (@fieldsToPrint) {
        next if !$user{$key};
        print "$key = ", join(', ', @{ $user{$key} }), "\n";
    }
    

    输出:

    favourite_TV_shows = A Country Practice, All Saints, Falling Skies
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-30
      • 2014-11-30
      • 1970-01-01
      • 2022-12-10
      • 2011-10-27
      • 2013-11-23
      • 2017-12-11
      • 1970-01-01
      相关资源
      最近更新 更多