@sorted = map { s/^\S+ // } sort map { my ( $x ) = ( /^_(\S+)/ ) ? ( $1 ) : ( /(\S+)$/ ); "$x $_" } @unsorted; #### elsif ($type =~ /name/) { for ( $c, $d ) { my $x = ( /^_(.*)/ ) ? $1 : substr( $_, rindex( $_, ' ' )); $_ = "$x $_"; } return $c cmp $d; }