#!/usr/bin/perl # Usage: csort ( | < input) > output use strict; use warnings; my $sep = shift or die; # separator to use my @list; while (<>) { chomp; push @list, [ /\A (.*) $sep (.*)/x ]; } foreach my $aref ( sort { $a->[1] cmp $b->[1] or $a->[0] cmp $b->[0] } @list ) { print join ($sep, @$aref), "\n"; }