2009-10-18 5 views

답변

10

문제는 해당 코드에 없습니다. 문제는 @arrayOfHash에 해시 설명이 아니라 배열 참조가 실제로 포함되어 있다는 것입니다. 어떤 이유로 당신이 @arrayOfHash를 해결할 수없는 경우

, 당신은 수행하여 해결할 수 있습니다

foreach my $hash (@arrayOfHash) { 
    my %hash = @$hash; 
    print keys %hash; 
} 
+0

그것은 그 다음 사용되지 않는 것을 좋은 일입니다. –

+1

"해결 방법"은 우리와 질문자가 정확히 @arrayOfHash에 무엇이 있는지를 알지 못해 조금 관대합니다. 먼저 그것을 알아 낸 다음 그것에 대해 뭔가를하십시오. 귀하의 코드는 한 가지 오류의 경우에만 도움이 될 것입니다. – ysth

5

당신은 항상 전체 예제 코드를 게시해야합니다 ..... 확실하지

무엇 당신은하고있는 중이지만 배열과 배열 참조 및/또는 해시 및 해시 참조를 혼합하고있을 것입니다. 내가 더 잘 구문을 원하는대로 나는 보통, 참조를 사용하고 나는 일관되게 좋아 :

use strict; 
use warnings; 

my($arrayrefOfHashrefs) = [ 
          {foo => 'bar', 
          bar => 'baz'}, 
          {Hello => 'world'}, 
          ]; 

foreach my $href (@$arrayrefOfHashrefs) { 
    print join("\n", keys %$href); 
    print "\n\n"; 
} 

인쇄됩니다 :

C:\Temp>perl foo.pl 
bar 
foo 

Hello 
관련 문제