#!/usr/bin/perl use strict; use warnings; use Tie::IxHash; my @entries = ([qw /alice aaa time 20:00:00/], [qw /john ccc time 21:00:00/], [qw /alice www time 22:00:00/], [qw /john aaa time 23:00:00/], [qw /andy xxx time 24:00:00/], [qw /alice bbb time 25:00:00/], [qw /andy yyy time 26:00:00/], ); my %HoHoH; tie %HoHoH => 'Tie::IxHash'; foreach my $entry (@entries) { my ($key1, $key2, $key3, $value) = @$entry; tie %{$HoHoH {$key1}} => 'Tie::IxHash' unless exists $HoHoH {$key1 +}; tie %{$HoHoH {$key1} {$key2}} => 'Tie::IxHash' unless exists $HoHoH {$key1 +} {$key2}; $HoHoH {$key1} {$key2} {$key3} = $value; } while (my ($key1, $val1) = each %HoHoH) { while (my ($key2, $val2) = each %$val1) { while (my ($key3, $val3) = each %$val2) { print "$key1 $key2 $key3 -> $val3\n"; } } } __END__ alice aaa time -> 20:00:00 alice www time -> 22:00:00 alice bbb time -> 25:00:00 john ccc time -> 21:00:00 john aaa time -> 23:00:00 andy xxx time -> 24:00:00 andy yyy time -> 26:00:00
Abigail
In reply to Re: HoHoH Insertion Order
by Abigail-II
in thread HoHoH Insertion Order
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |