| XML-Parser documentation | Contained in the XML-Parser distribution. |
XML::Parser::Style::Subs
use XML::Parser;
my $p = XML::Parser->new(Style => 'Subs', Pkg => 'MySubs');
$p->parsefile('foo.xml');
{
package MySubs;
sub foo {
# start of foo tag
}
sub foo_ {
# end of foo tag
}
}
Each time an element starts, a sub by that name in the package specified by the Pkg option is called with the same parameters that the Start handler gets called with.
Each time an element ends, a sub with that name appended with an underscore ("_"), is called with the same parameters that the End handler gets called with.
Nothing special is returned by parse.
| XML-Parser documentation | Contained in the XML-Parser distribution. |
# $Id: Subs.pm,v 1.1 2003-07-27 16:07:49 matt Exp $ package XML::Parser::Style::Subs; sub Start { no strict 'refs'; my $expat = shift; my $tag = shift; my $sub = $expat->{Pkg} . "::$tag"; eval { &$sub($expat, $tag, @_) }; } sub End { no strict 'refs'; my $expat = shift; my $tag = shift; my $sub = $expat->{Pkg} . "::${tag}_"; eval { &$sub($expat, $tag) }; } 1; __END__