use POSIX qw( strftime ); my $last_date = ''; my @filtered_times; for my $time (sort { $a <=> $b } @times) { my $date = strftime('%Y-%m-%d', localtime($time)); if ($date eq $last_date) { $filtered_times[-1] = $time; } else { push @filtered_times, $time; $last_date = $date; } }