use XML::Parser; use strict; parse_stuff(); sub parse_stuff { my $indent; my $parser = new XML::Parser( Handlers => {Start => sub { $indent++; handle_start($indent, @_) }, End => sub { $indent--; handle_end(@_) } } ); $parser->parsefile('/tmp/ra.xml'); } sub handle_start { my ($indent, $p, $el, %atts) = @_; print "-"x$indent . "$el\n"; } sub handle_end { # whatever }