2013-04-27 3 views
-1

해시 해시의 해시를 처리하는 데 문제가있는 것처럼 보입니다. 내 데이터 구조는 다음과 같이 인 : 나 $ 직렬를 반복하지 않고 X, Y, Z를 얻고 싶은 것이다"해시 참조로 문자열을 사용할 수 없습니다"해시 해시의 해시

$atomsArray{$number}{$serial} = { 
    atom => $atom, 
    x => $x, 
    y => $y, 
    z => $z 
}; 

및 원자

비록
for my $number(sort keys %atomsArray){ 
    for my $serial(sort keys %{$atomsArray{$number}}){ 
     #cannot iterate through x,y,z 
    } 
} 

을 반복하는 동안이 문제에 들어가, 해시에 해시를 사용하는 것이 중요합니다. 이는 원자를 계산해야하는 원자간에 차이가 있기 때문입니다.

+0

그것이 좋은 여부 나하지, 내가 세 번째 수준 해시을 반복하는 방법이 필요합니다. –

답변

0

저는 어리석은 사람이므로 간단한 반복을 할 수 없습니다. 해시의 해시의 해시를 반복하는 방법에 대한 답변은 다음과 같습니다

for my $number(sort keys %atomsArray){ 
    for my $serial(sort keys %{$atomsArray{$number}}){ 
     print $atomsArray{$number}{$serial}{'x'}; 
    } 
} 
관련 문제