#!/usr/bin/perl -l print for map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [$_, ( /blahblah/ ? 0 : 1 ) . $_] } <>; #### ( ["bat 1 blahblah", "1bat 1 blahblah"], ["foo 2 blahblah", "1foo 2 blahblah"], ["bar 1 zot", "0bar 1 zot"], ["bar 2 zot", "0bar 2 zot"] ) #### #!/usr/bin/perl -l print for map { substr($_, 1) } sort map { ( /blahblah/ ? 0 : 1 ) . $_ } <>;