package HTML::Zoom::SelectorParser;
-use strict;
-use warnings FATAL => 'all';
+use strictures 1;
use base qw(HTML::Zoom::SubObject);
use Carp qw(confess);
my $value = $2;
sub {
$_[0]->{attrs}{$attribute}
- && grep { $_ eq $value } split(' ', $_[0]->{attrs}{$attribute});
+ && $_[0]->{attrs}{$attribute} =~ qr/\b\Q$value\E\b/;
+ }
+ };
+
+ # '[attr!=bar]' - match attribute contains prefix (for language matches)
+ /\G\[$sel_re\|=$match_value_re\]/gc and
+ return do {
+ my $attribute = $1;
+ my $value = $2;
+ sub {
+ $_[0]->{attrs}{$attribute}
+ && $_[0]->{attrs}{$attribute} =~ qr/^\Q$value\E(?:-|$)/;
}
};