@input_lines = sort {my ($a_name_last,$a_name_first,$a_city ) = split(/\s+/,$a); my ($b_name_last,$b_name_first,$b_city) = split(/\s+/,$b); $a_name_last cmp $b_name_last or $a_name_first cmp $b_name_first or $a_city cmp $b_city }@input_lines;