#! perl -w my @domains = qw(foo.com weirdext.za bar.uk.com blah.co.uk perl.pl zzzz.co.uk); my @sorted = map{ join '.', reverse split( /\|/,$_ ) } sort map {join '|', reverse split( /\./,$_,2) } @domains; { local $"="\n"; print "@sorted"; } __END__ # Output C:\test>193114 blah.co.uk zzzz.co.uk foo.com perl.pl bar.uk.com weirdext.za C:\test>