use strict; use warnings; use Data::Dumper; my %hash; push @{$hash{alice}}, {aaaa => "20:00:00"}; push @{$hash{john}}, {ccc => "21:00:00"}; push @{$hash{alice}}, {www => "22:00:00"}; push @{$hash{john}}, {aaa => "23:00:00"}; push @{$hash{andy}}, {xxx => "24:00:00"}; push @{$hash{alice}}, {bbb => "25:00:00"}; push @{$hash{andy}}, {yyy => "26:00:00"}; print Dumper $hash{alice}; __END__ $VAR1 = [ { 'aaaa' => '20:00:00' }, { 'www' => '22:00:00' }, { 'bbb' => '25:00:00' } ];