my $thisYear = 2005; my $yearRef = $galaxy{ $sSystem }{ $planet }{ $thisYear }; for my $year ( keys %{ $yearRef } ) { for my $lat ( keys %{ $yearRef->{ $year } } ) { for my $long ( keys %{ $yearRef->{ $year }{ $lat } } ) { printf "$sSystem.$planet.$thisYear.$lat.$long:%s\n", $yearRef->{ $year }{ $lat }{ $long }; $yearRef->{ $year }{ $lat }{ $long }++; } } } #### my $thisYear = 2005; my $yearIter = $galaxy->getYearIerator( $sSystem, $planet, $thisYear ); while( my $year = $yearIter->() ) { my $latIter = $year->getLatitudeIter(); while( my $lat = $latIter->() ) { my $longIter = $lat->getLongIter(); while( my $long = $longIter->() ) { printf "$sSystem.$planet.$thisYear.%s.%s.%s\n", $year->getYear(), $lat->getLat(), $long->getLong(), $long->getOccurances(); $long->setOccurances( $long->getOccurances() + 1 ); } } }