#!/usr/bin/perl @dates = ('20130401', '20130501', '20130601'); @ordered = sort { &compare } @dates; sub compare { $a =~ /(\d{4})(\d{2})(\d{2})/; $c = $3 . $2 . $1; $b =~ /(\d{4})(\d{2})(\d{2})/; $c = $3 . $2 . $1; $c <=> $d; } print "@ordered\n"; #### 20130501 20130401 20130601 #### 20130501 20130401 20130601