use Tie::IxHash; #tie %HoHoH, 'Tie::IxHash'; tie %{$HoHoH{text}}, 'Tie::IxHash'; my $HoHoH = {}; $HoHoH->{"alice"}{"aaaa"}{"time"} = "20:00:00"; $HoHoH->{"john"}{"ccc"}{"time"} = "21:00:00"; $HoHoH->{"alice"}{"www"}{"time"} = "22:00:00"; $HoHoH->{"john"}{"aaa"}{"time"} = "23:00:00"; $HoHoH->{"andy"}{"xxx"}{"time"} = "24:00:00"; $HoHoH->{"alice"}{"bbb"}{"time"} = "25:00:00"; $HoHoH->{"andy"}{"yyy"}{"time"} = "26:00:00"; foreach my $user ( sort keys %$HoHoH ) { print "$user\n"; for my $text ( keys %{$HoHoH->{ $user }} ) { print "\t$text"; for my $time ( keys %{$HoHoH->{ $user }->{ $text }} ) { print "\t$time = $HoHoH->{ $user }->{ $text }->{ $time }\n"; } } print "\n"; } #### alice bbb time = 25:00:00 www time = 22:00:00 aaaa time = 20:00:00 andy yyy time = 26:00:00 xxx time = 24:00:00 john ccc time = 21:00:00 aaa time = 23:00:00 #### aaaa time = 20:00:00
www time = 22:00:00
bbb time = 25:00:00