Hi all

I'm trying to update a script originally written by someone else (yeehaw), 
and I'm having troubles with the sorting routine.

here's the code snippet.....

sub list_files {

#($name, $type, $size, $mtime, $mode) = @$_;

@sites = keys %das_sites;

@sites = sort { lc($a) cmp lc($b) } @sites
   if $form{sort} eq 'Site';

@sites = map { $_->[0] }
          sort { $b->[1] cmp $a->[1] ||
                 lc($a->[0]) cmp lc($b->[0]) }
          map { [$_, $info_dirs->{$_}->{'owner'} ] }
          @sites
   if $form{sort} eq 'owner1;

@sites = map { $_->[0] }
          sort { $a->[1] cmp $b->[1] ||
                 lc($a->[0]) cmp lc($b->[0]) }
          map { [$_, $info_dirs->{$_}->{'owner'} || 'z' ] }
          @sites
   if $form{sort} eq 'owner2';

   print <<HTML;
<html>
<head>
.............

The second two sorts are the ones I'm interested in.  It sorts first by the 
owner ($b->[1] cmp $a->[1]), then by the name (lc($a->[0]) cmp lc($b->[0])).

In this script, there are just two owners.  So in the script, it was easy 
to just compare the names of the owners and sort by that.  My problem is 
that I need to add a third owner, and this code doesn't lend itself to 
being expanded very well.  I tried sorting by ($a->[1] eq 'owner1') - 
($b->[1] eq 'owner1') for each owner, but I found out that the eq operator 
returns a 1 if true and "" if false.  I was hoping for a 1 or a 0, but no 
such luck.

How can I add a third owner to this?

Thanks

Adam

Reply via email to