http://www.perlmonks.org?node_id=580738

Jonathan has asked for the wisdom of the Perl Monks concerning the following question:

I have two scripts that use XML::Simple to parse a small file. The XML::Simple code is identical for both, ie
# Create XML reader object my $xs = new XML::Simple(); # Parse XML string my $ref = $xs->XMLin($file_str);
With an identical XML string the first script runs without complaint. The second also runs but I have a message in my log file
Thu Oct 26 12:47:37 2006 [PID 23309] [critical] Can't use string ("<sa +:model xmlns:sa="urn:basel-rb") as a symbol ref while "strict refs" i +n use at /usr/local/lib/perl5/site_perl/5.6.0/sun4-solaris/XML/Parser +/Expat.pm line 451.
The only difference between the two routines is that in the one that reports the problem I've added my own error reporting overrides
$SIG{__WARN__} = \&log_warn; $SIG{__DIE__} = \&log_die;
Can anyone offer me some enlightenment on whats going on?