my @quarter = qw(q0 q3 q3 q4 q4 q4 q1 q1 q1 q2 q2 q2 q3); # Later... @sorted = sort { $quarter[(split(/\//, $a))[0]] cmp $quarter[(split(/\//, $b))[0]] } @rawdates;