#!/usr/bin/perl use strict; use warnings; use XML::Twig; use Test::More; XML::Twig->new( twig_handlers => { header => \&test_header }) ->parse( \*DATA); done_testing(); sub test_header { my( $t, $header)= @_; is( $header->att( 'expected'), is_la_rare( $header), $header->sprint); } sub is_la_rare { my $elt = shift; foreach my $label ($elt->children('la') ) { next unless $label->text eq "rare"; my $isNowRare = 0; if ( $label->parent->text_only =~ m/[nN]ow / ) { $isNowRare = 1; } if ( !$isNowRare ) { return 1; } } return 0; } __DATA__
rare
Now rare
Now hist. and rare