#!/usr/bin/perl -w use strict; open (DATA, "./data.txt") or die $!; # for example my @sorted = map { $_->[1] } sort { $a->[0] cmp $b->[0] } map { [ &fix_date($_), $_ ] } ; for (@sorted) { print $_ }; sub fix_date { my ($d,$m,$y) = ( shift =~ m|(\d\d)/(\d\d)/(\d{4})| ); return "$y-$m-$d"; }