my @list = ('10.1.1.1', '10.1.1.2', '10.2.2.1', '10.2.2.2'); @list = sort intermix @list; sub intermix { return ( substr( $a, 0, rindex($a, '.')) eq substr( $b, 0, rindex($b, '.')) ) ? 1 : 0; }