use strict; use warnings; use Data::Dumper; my %HoA; while () { chomp; next if ! length $_; my ($key, $time) = split ","; push @{$HoA{$key}}, $time; } print Dumper (%HoA);