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]