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]

Reply via email to