in reply to XML::Parser question.

You're going to kick yourself ;-)

You want to be calling the parsefile method, not the parse method. parse expects to see a string containing the XML, and of course 'test.xml' is not well-formed XML. (Or you can pass it an open IO::Handle, but not a bare filename.)

Also, if you have further problems it can be helpful to use the Style => 'Debug' setting when you instantiate your parser object.

        $perlmonks{seattlejohn} = 'John Clyman';