Well I don't really know what to say about this one because its just a bit odd, It seems that XML::Simple makes XML::Parser::Expat try to use something as a GLOB ref when it not supposed to.
lemme explain in code.
we have some XML:
<root>
<ROW>
<confHost>barbarasueseal.com</confHost>
<confBlankImage>barbarasueseal.com</confBlankImage>
</ROW>
...
</root>
and we have a parser script useing XML::Simple:
use XML::Simple;
my($xmlstring)=<>;
my($xmlObj)=XML::Simple->new(noattr=>1);
my($dataref)=$xmlObj->XMLin($xmlstring);
the above code works fine for parsing the above xml
but if we use the same code but in side a mod_perl env
and get the string from a posted param ala:
my($xmlstring)=$r->param('xmlString');
It fails on my server with this:
Can't use string (" barba") as a symbol ref while "strict
refs" in use at /usr/local/lib/perl5/site_perl/5.6.1/i586
linux/XML/Parser/Expat.pm line 456.
Its kinda weird because XML::Simple/XML::Parser::Expat inside mod_perl it wants todo this:
eval {
$ioref = *{$arg}{IO};
};
undef $@;
but anywhere else it does not do this, does anyone know of any problems with XML::Simple and mod_perl and if so do you know of any workarounds/fixes.
|