Hello, Is there a better way of setting up the sort that happens in sort_name(), the 'if( .. )' looks a little verbose, I was thinking it would be better to just past a string, as in:
sub sort_name() { my ($first_field,$second_field) =@_; $database{$a}{"${first_field}_name"}; $database{$b}{"${second_field}_name"}; ----------- Here is the code excerpt I am making a reference to: ........snip........ elsif ($sort_by == 1){ # sort by first name &sort_name('first'); } elsif ($sort_by == 2){ # sort by last name # &sort_name('last_name'); &sort_name('last'); } elsif ($sort_by == 3){ # sort by birthday &sort_num('birthday'); } elsif ($sort_by == 4){ # sort by Sex &sort_name('sex'); } sub sort_name() { my ($A,$B,$C,$D,$which); ($which) = @_; foreach my $key (sort { if ($which eq 'last') # sort last names { ($A) = $database{$a}{last_name}; ($B) = $database{$b}{last_name}; ($C) = $database{$a}{first_name}; ($D) = $database{$b}{first_name}; } elsif ($which eq 'first') # sort first names { ($A) = $database{$a}{first_name}; ($B) = $database{$b}{first_name}; ($C) = $database{$a}{last_name}; ($D) = $database{$b}{last_name}; } else { ($A) = $database{$a}{sex}; ($B) = $database{$b}{sex}; } (!$sort_direction) ? (lc($A) cmp lc($B) || lc($C) cmp lc($D)) : (lc($B) cmp lc($A) || lc($D) cmp lc($C)); } keys %database){ &print_tableData($key); } } sub print_tableData { my $rec = shift; print "$new_row <td>$database{$rec}{first_name}</td> <td>$database{$rec}{last_name}</td> <td>$database{$rec}{birthday}</td> <td>$database{$rec}{sex}</td> <td>$database{$rec}{height}</td> <td>$database{$rec}{weight}</td> </tr>\n" } *====================================================* * Cora Connection Your West African Music Source * * http://www.coraconnection.com/ * * Resources, Recordings, Instruments & More! * *====================================================* -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]