sort USERSUB LIST #### my $mysortref = sub { lc($data{$a}[0]) cmp lc($data{$b}[0]) || lc($data{$a}[1]) cmp lc($data{$b}[1]) }; @results = sort $mysortref (keys %data); #### my (%data, @results); while () { my @temp = split; $data{$temp[2]} = [@temp]; } my $mysortref = sub { lc($data{$a}[0]) cmp lc($data{$b}[0]) || lc($data{$a}[1]) cmp lc($data{$b}[1]) }; @results = sort $mysortref (keys %data); print "@{$data{$_}}\n" for (@results); __DATA__ HERNANDEZ HECTOR 456791 SAMSON 0217 2001-07-25 1963-08-01 VASQUEZ JOAQUIN 456789 SAMSON 0209 1990-11-14 1970-03-25 JONES TIMOTHY 803092 LAVER 0103 2001-03-19 1969-06-29 SMITH BETTY_SUE 698389 SAMSON 0211 1992-01-23 1949-08-12 VASQUEZ LEONARDO 456788 LAVER 0107 1990-08-23 1970-15-23 SMITH HAROLD 359962 TRE 0111 2001-07-19 1973-10-02 VASQUEZ ADALBERTO 786792 LAVER 0104 2001-07-26 1973-08-17 VASQUEZ JORGE 456787 LAVER 0105 1986-01-17 1956-01-13 VAZQUEZ TOMASINA 456790 LAVER 0110 1980-11-14 1960-14-02 WILSON SYLVESTER 498703 LAVER 0110 1983-04-02 1953-06-22 VASQUEZ ALBERTO 906786 TRE 0111 2001-07-15 1953-02-28