#!/usr/bin/perl use strict; use warnings; use XML::Parser; use Data::Dumper 'Dumper'; my $xml_data; { local $/; $xml_data = ; } my %my_hash; my $hash_key = ''; my $parser = XML::Parser->new( Handlers => { Start => sub { $hash_key = $_[1] }, Char => sub { $my_hash{$hash_key} .= $_[1] if ( $hash_key ) }, End => sub { $hash_key = '' } }, ); $parser->parse( $xml_data ); print Dumper( \%my_hash ); __DATA__ My Tag1 My Tag2 My Tag3