2013-04-27 2 views
-1

Я, похоже, попал в проблему с хэш-хешем хэшей. Моя структура данных, как это:«Нельзя использовать строку как хэш-ref» хэш хэша хэша

$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'}; 
    } 
} 
Смежные вопросы