Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re: __DATA__ in XML::Simple and/or IO::Handle

by grantm (Parson)
on Oct 03, 2006 at 20:37 UTC ( #576183=note: print w/replies, xml ) Need Help??

in reply to __DATA__ in XML::Simple and/or IO::Handle

As runrig said, XMLin(\*DATA) is probably what you want (although this node describes why you really need a couple of extra options).

The "Unable to recognise encoding..." message is actually an informational warning from XML::SAX::PurePerl. Due to the fact that your XML started with some whitespace (perhaps a blank line), the parser was unable to autodetect the encoding by examining the byte(s) used to represent the initial '<' character. In the absence of this information, the parser assumes utf-8 encoding and continues.

It's not a particularly helpful message and none of the other XML parser modules emit warnings in the same situation.

You should be aware that the PurePerl parser (version 0.14 of XML::SAX) has a bug in its handling of character entities (eg: '&amp;') in attributes. This bug caused the XML::Simple test suite to fail so I'm guessing you must have forced the install. I've supplied patches to fix the bug and remove the encoding warning so I'm hopeful both issues will be fixed in the next release.

FYI: I released a new version of XML::Simple yesterday which includes improved documentation around passing a filehandle to XMLin.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://576183]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (1)
As of 2019-08-21 06:03 GMT
Find Nodes?
    Voting Booth?

    No recent polls found