2014-10-25 2 views
0

각 필드마다 여러 값이있는 펄 설정의 해시가 있습니다. 해시에 데이터를 푸시하는 데이 방법을 사용했습니다 : push @{$user{$infoName}}, $information;. 예. 3 좋아하는이의 나 사용자는 내가 보여주고 싶은 필드가 @fieldsToPrint = ['username','favourite_TV_shows']해시의 일부만 인쇄하기

는 어떻게 foreach 문을 작성할 수 있습니다 배열에 저장되도록 모두가 같은 무게로

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

이 사용자 정보 중 일부는 비공개로 저장 보여줍니다 루프를 사용하여 feildsToPrint 배열에있는 필드 만 인쇄하십시오.

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 
다음은 내 시도는
foreach ($user{$infoName} == @fieldsToPrint){ 
    #print 
} 

답변

1

그냥 값을 가지고 있지 않는 키를 건너 뛰는 당신의 @fieldsToPrint 배열에 반복 ... 지금까지입니다