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