#!/usr/bin/perl use strict; use warnings; my @array = (1,5,6,7,8,55,63,77,89,103,104,105,106,200,215,554); my %free_numbers = map {$_ => 1} @array; for my $number (@array) { my $ok = 1; for (my $i = 0; $i < 4; $i++) { if (! exists $free_numbers{$number + $i}) { $ok = 0; last; } } if ($ok) { print "found consecutive numbers: "; for (my $i = 0; $i < 4; $i++) { print $number + $i, " "; delete $free_numbers{$number + $i}; } print "\n"; } } __END__ found consecutive numbers: 5 6 7 8 found consecutive numbers: 103 104 105 106