my $x; $x->{foo}; print $x; # it's a hash! #### my $x; $x->[0]; print $x; # it's an array! #### my $event; while( <> ) { chomp; my ( $time, $lane, $factory, $event ) = split " ", $_; $event->{ $factory }{ $lane }{ $time } = $event; } #### my $event = {}; while( <> ) { chomp; my ( $time, $lane, $factory, $event ) = split " ", $_; $event->{ $factory } = {} if not exists $event->{ $factory }; $event->{ $factory }{ $lane } = {} if not exists $event->{ $factory }{ $lane }; $event->{ $factory }{ $lane }{ $time } = $event; }