in reply to Re^3: Error with .xml file processing in XML::Simple
in thread Error with .xml file processing in XML::Simple
The respective piece of code that populates @Encoding_Path looks like
if ($have_File_Spec) { @Encoding_Path = (grep(-d $_, map(File::Spec->catdir($_, qw(XML Parser Enco +dings)), @INC)), File::Spec->curdir); } else { @Encoding_Path = (grep(-d $_, map($_ . '/XML/Parser/Encodings', @INC +)), '.'); }
so it should work if you put the file in "the current directory", or in one of the @INC dirs with /XML/Parser/Encodings appended. If you try '.', note that if this a CGI script, the current directory may not be what you think it is... (in case of doubt, chdir()).
Alternatively, I think you can explicitly call XML::Parser::Expat::load_encoding(ENCODING) and specify an absolute path to the file as ENCODING. From Expat.pm:
=item XML::Parser::Expat::load_encoding(ENCODING) Load an external encoding. ENCODING is either the name of an encoding +or the name of a file. The basename is converted to lowercase and a '.enc +' extension is appended unless there's one already there. Then, unless it's an absolute pathname (i.e. begins with '/'), the first file by th +at name discovered in the @Encoding_Path path list is used. (...) The only reason users should use this function is to explicitly load an encoding not contained in the @Encoding_Path list.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: Error with .xml file processing in XML::Simple
by ultranerds (Hermit) on Feb 17, 2009 at 10:16 UTC | |
by almut (Canon) on Feb 17, 2009 at 10:47 UTC | |
by Bloodnok (Vicar) on Feb 17, 2009 at 11:09 UTC | |
by ultranerds (Hermit) on Feb 17, 2009 at 12:11 UTC | |
by almut (Canon) on Feb 17, 2009 at 13:19 UTC | |
by ultranerds (Hermit) on Feb 17, 2009 at 13:51 UTC | |
| |
by Anonymous Monk on Feb 17, 2009 at 11:54 UTC |