File: //usr/local/lib/perl5/site_perl/5.8.8/Text/Query/Simple.pm
# Backwards-compatibility and speed stub for Text::Query
package Text::Query::Simple;
use strict;
use vars qw(@ISA);
use Text::Query;
@ISA=qw(Text::Query);
#use base qw(Text::Query);
sub new {
my $class=shift;
$class->SUPER::new (@_,-mode => 'simple_text');
}
sub match {
my($self) = shift;
return $self->matchscalar(shift || $_) if(@_ <= 1 && ref($_[0]) ne 'ARRAY');
my($pa) = (@_ == 1 && ref($_[0]) eq 'ARRAY') ? shift : \@_;
my(@ra);
if(ref($pa->[0]) eq 'ARRAY') {
@ra = map { [ @$_, $self->matchscalar($_->[0]) ] } @$pa;
} else {
@ra = map { [ $_, $self->matchscalar($_) ] } @$pa;
}
@ra = sort { $b->[$#{@$b}] <=> $a->[$#{@$a}] } @ra;
return wantarray ? @ra : \@ra;
}
sub matchscalar {
my($self) = shift;
my($expr) = $self->{matchexp};
my($target) = (shift || $_);
my($cnt) = 0;
my($re, $ws) = @$expr;
while($target =~ /$re/g) {
return 0 if(!$^R->[0]);
$cnt += $^R->[1];
$ws &= $^R->[0];
}
return $ws ? 0 : $cnt;
}
1;