in reply to How to check missing sequence between sequence range ?
If you can use modules you might like the following solution:
#!/usr/local/bin/perl # use strict; use warnings; use Set::IntSpan::Fast; my @sequence_numbers = map {int($_)} (<DATA>); my $set = Set::IntSpan::Fast->new(); $set->add_range(1,9999); $set->invert(); $set->add(@sequence_numbers); $set->invert(); print $set->as_string() . "\n"; __DATA__ 9996 9998 9999 0001 0003 0005
Which produces:
2,4,6-9995,9997
|
|---|