foreach (sort {&compare} @lines) { print "$_"; } sub compare { $a =~ /(\d+)\/(\d+)\/(\d{4}),(.*)/; my $c = $3 . $1 . $2; $b =~ /(\d+)\/(\d+)\/(\d{4}),(.*)/; my $d = $3 . $1 . $2; $c <=> $d; }