use strict; use warnings; use XML::SAX; my $h = Handler->new(); my $p = XML::SAX::ParserFactory->parser(Handler => $h) or die "Unable to get XML SAX parser object"; $p->parse_uri("10.xml"); BEGIN { package Handler; sub new { my $class = shift; bless({chars => ''}, ref $class || $class); } sub start_element { my ($this, $data) = @_; $this->{chars} = ''; print "start $data->{Name}\n"; } sub end_element { my ($this, $data) = @_; print "end $data->{Name} = ", length($this->{chars}), "\n"; $this->{chars} = ''; } sub characters { my ($this, $data) = @_; my $chars = $data->{Data}; $this->{chars} .= $chars; print "characters ",length($chars),"\n"; } }