use strict; use warnings; my @records = ; my @sorted = map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { [ $_,datify((/Coll\s+(\S+)/)[0]) ] } @records; print pop @sorted; sub datify { return join "" => (split '/',shift)[2,0,1]; } __DATA__ Record 0: Coll 02/14/2003 Charles S. 2862.30 00000 ISSUE WWW Record 1: Coll 03/17/2003 Peter C. 392.50 00000 ISSUE WWW Record 2: Coll 07/25/2003 John K. 10.00 00000 ISSUE CCC