JAPH #### #!perlenv -w use strict; use XML::Parser; my $xp; my $japh; $xp = new XML::Parser( Handlers => { Start => \&start_handler, End => \&end_handler, Char => \&char_handler } ); if ( $#ARGV < 0 ) { print "usage: blah "; exit; } $xp->parsefile( $ARGV[0] ); sub start_handler { my ( $xp, $elem ) = @_; if ( $elem eq 'say' ) { $japh = 1; } } sub end_handler { my ( $xp, $elem ) = @_; if ( $elem eq 'say' ) { $japh = 0; } } sub char_handler { my ( $xp, $str ) = @_; if ($japh) { $japh = $str; print $japh . "\n"; } } #### if ( $string[0] =~ /xml/ ) { foreach $string (@string) { if ( $string =~ m// ) { $say = $string; } if ( $string =~ m/(//; $say =~ s/<\/say>//; print $say . "\n"; $found = 1; } if ( $string =~ m/<\/monk>/ ) { $say = ""; } } }