home *** CD-ROM | disk | FTP | other *** search
- # $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