#!/usr/bin/env perl use strict; use warnings; use feature qw (say); my @dates = qw{ 12112014 01052015 02202015 03102015 01012011 04092015 09092015 }; my %hash; for (@dates) { my ( $m, $d, $y ) = unpack q(a2a2a4); $hash{qq($y$m$d)} = $_; } for ( sort { $a <=> $b } keys(%hash) ) { say $hash{$_}; } __END__ karls-mac-mini:monks karl$ ./dirs.pl 01012011 12112014 01052015 02202015 03102015 04092015 09092015