I think you meant..
my $tmp = $parse->parse($address);
the $parse object needs a method
Also, the parse method seems to return a array reference, not a hash.
use strict;
use warnings;
use XML::Parser;
use Data::Dumper;
my $parse = new XML::Parser(Style => 'Objects');
my $address = "<LOC><HNO></HNO><STN>Eagle Way</STN><MCN>Gotham City</M
+CN></LOC>";
print Dumper $parse->parse($address);
this produces..
C:\tmp>test.pl
$VAR1 = [
bless( {
'Kids' => [
bless( {
'Kids' => []
}, 'main::HNO' ),
bless( {
'Kids' => [
bless( {
'Text' =>
+ 'Eagle Way'
}, 'main::C
+haracters' )
]
}, 'main::STN' ),
bless( {
'Kids' => [
bless( {
'Text' =>
+ 'Gotham City'
}, 'main::C
+haracters' )
]
}, 'main::MCN' )
]
}, 'main::LOC' )
];
You might want to consider XML::Simple. It has a much simpler interface
use strict;
use warnings;
use XML::Simple;
use Data::Dumper;
my $address = "<LOC><HNO></HNO><STN>Eagle Way</STN><MCN>Gotham City</M
+CN></LOC>";
my $ref = XMLin($address);
print Dumper $ref;
This produces...
C:\tmp>test.pl
$VAR1 = {
'MCN' => 'Gotham City',
'HNO' => {},
'STN' => 'Eagle Way'
};