use warnings; use strict; my @middle = qw( 49998 49999 50000 50001 50002 50003 ); my @limit = qw( 99997 99998 99999 00001 00002 00003 ); use Data::Dumper; print "MIDDLE\n"; print Dumper sort ro @middle; print "LIMIT\n"; print Dumper sort ro @limit; sub ro { ( abs($a - $b) > 5000 ? $b <=> $a : $a <=> $b ) }