Ionizor has asked for the wisdom of the Perl Monks concerning the following question:

I'm having problems getting my program to work correctly. It keeps telling me Undefined subroutine &SUPER::start_document called at safari.pl line 26. Since my script is less than finished, I have an example script taken from "XML and Perl" that does the same thing when I run it.
use XML::Parser::PerlSAX; use XML::Handler::Subs # # initialize the parser # use XML::Parser::PerlSAX; my $parser = XML::Parser::PerlSAX->new( Handler => H1_grabber->new( ) + ); $parser->parse( Source => {SystemId => shift @ARGV} ); ## Handler object: H1_grabber ## package H1_grabber; use base( 'XML::Handler::Subs' ); sub new { my $type = shift; my $self = {@_}; return bless( $self, $type ); } # # handle start of document # sub start_document { SUPER::start_document( ); print "Summary of file:\n"; } <snip>
The part I've snipped out just contains handlers for the various HTML elements in the file (s_h1 for an h1 start tag, e_h1 for an h1 end tag, etc.) and shouldn't affect the above section of script in any way. Does anyone know why this script doesn't work?

Replies are listed 'Best First'.
Re: SAX XML-Handler-Subs and SUPER::
by chromatic (Archbishop) on Aug 10, 2002 at 17:04 UTC

    Do you mean $self->SUPER::start_document();?

      That's a distinct possibility. Looks like it's time to write to O'Reilly.

      Thanks.

      Update:

      The code should read:

      <snip> sub start_document { $self = shift; $self->SUPER::start_document( ); print "Summary of file:\n"; } <snip>

      I've sent the correction to O'Reilly. I mentioned your name ;)