sub parse { my ($self, $xmlfile) = @_; my $parser = XML::Parser->new( Handlers => {Start => sub { $self->handle_start(@_) }, End => sub { $self->handle_end(@_) }, Char => sub { $self->handle_char(@_) }, ); $parser->parsefile($xmlfile); } sub handle_start { my ($self, $parser, @args) = @_; print $self->{i_need_this}; ... }; ...