所以我在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
}
答案 0 :(得分: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