use XML::Simple; use Data::Dumper; use strict; # note - added exit(1) to keep things simple $SIG{__DIE__} = sub { print "$_[0]"; exit(1) }; my $xml_str = < XML my $ret = XMLin($xml_str); print Dumper($ret); __output__ Can't use string (" ## $VAR1 = { 'tag2' => { 'attr1' => 'foo' } };