in reply to Finding missing numbers in a list
use List::Util qw[ reduce ]; my @in = ( 41888, 41889, 41890, 41892, 41895 ); my @missing; reduce{ push @missing, $a+1 .. $b-1; $b } @in; print @missing; 41891 41893 41894
If your list is large, then this will be more (memory) efficient:
my @in = ( 41888, 41889, 41890, 41892, 41895 ); my @missing; push @missing, $in[ $_ ] +1 .. $in[ $_+1 ] -1 for 0 .. $#in-1; print @missing; 41891 41893 41894
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Finding missing numbers in a list
by ambrus (Abbot) on Sep 03, 2004 at 17:05 UTC | |
by BrowserUk (Patriarch) on Sep 03, 2004 at 17:11 UTC |
In Section
Seekers of Perl Wisdom