> > im trying to sort out this sort routine:
> > the sub by_number_of_citations works
> > but if i try to make a sort alphabetically, my regex fails?
> > how should it be done?
> >
> > # sting to match: <tr><td>1212</td><td>Cited 
> > Work</td><td>12</td><td>1232< /td><td>1999</td></tr>
> >
> > # sort routine
> > #
> > sub by_number_of_citations
> > {
> >    $a =~ /\<td\>(.*?)\<\/td\>/;
> >    my $A = $1;
> >    $b =~ /\<td\>(.*?)\<\/td\>/;
> >    my $B = $1;
> >
> >    $B <=> $A;
> > }

May I suggest:
(my $A = $a) =~ s/^<tr><td>(\d+)<\/td>/$1/;
(my $B = $b) =~ s/^<tr><td>(\d+)<\/td>/$1/;

> > # sort routine
> > #
> > sub alphabetically
> > {
> >    $a =~ /^\<tr\>\<td\>\d+\<\/td\>\<td\>(.*)\<\/td\>/;
> >    my $A = $1;
> >    $b =~ /^\<tr\>\<td\>\d+\<\/td\>\<td\>(.*)\<\/td\>/;
> >    my $B = $1;
> >
> >    $A cmp $B;
> > }

Again:
(my $A = $a) =~ s/^<tr><td>\d+<\/td><td>(.*?)<\/td>/;
(my $B = $b) =~ s/^<tr><td>\d+<\/td><td>(.*?)<\/td>/;

But notice the (.*?) group... I think that might have been your problem.
Let me know if that works, and if it doesn't, please post more data that
you're comparing.

> you haven't shown where you get the strings $a and $b which 
> you pass as 
> arguments to your subs.

He's doing:

sort by_number_of_citations @list
sort alphabetically @list

Which implicitly passes $a and $b into the custom sort subroutines.
Neat, eh? :)

Cheers,

 -dave



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to