diff options
Diffstat (limited to 'Master/tlpkg/tlperl0/lib/XML/Parser/Style/Subs.pm')
-rwxr-xr-x | Master/tlpkg/tlperl0/lib/XML/Parser/Style/Subs.pm | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl0/lib/XML/Parser/Style/Subs.pm b/Master/tlpkg/tlperl0/lib/XML/Parser/Style/Subs.pm new file mode 100755 index 00000000000..15a21439e8e --- /dev/null +++ b/Master/tlpkg/tlperl0/lib/XML/Parser/Style/Subs.pm @@ -0,0 +1,58 @@ +# $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__ + +=head1 NAME + +XML::Parser::Style::Subs + +=head1 SYNOPSIS + + 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 + } + } + +=head1 DESCRIPTION + +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. + +=cut
\ No newline at end of file |