use warnings; use strict; my @arr = (19,17,22,23,24,15,16,25..35); sub find_missing { my @stuff = @_; my @sorted_arr = sort {$a <=> $b} @stuff; foreach my $num(0..$#sorted_arr-1) { my $current = $sorted_arr[$num]; my $next = $sorted_arr[++$num]; my @missing = ($current+1..$next-1); print "$current,"; if ($next - $current != 1) { print "(missing: [@missing]),"; } } print "$sorted_arr[-1]"; } &find_missing(@arr); #### C:\>perl findmissing.pl 15,16,17,(missing: [18]),19,(missing: [20 21]),22,23,24,25,26,27,28,29,30,31,32,33,34,35