my $best = undef; for (@returns) { my $diff = abs($ctime - $_); unless (defined $best) { $best = [$_, $diff]; next; } if ($diff < $best) { $best = [$_, $diff]; next; } if ($diff > $best) { last; } } print "Best match is $best->[0] at $best->[1] away from $ctime\n";