It basically means you used a variable with the value undef in a
string concatenation (which is what string interpolation does under the covers)... er, array index in this case, but the warning is emitted whenever an undefined value is used as if it were already defined. "Uninitialized" may be a little misleading because you can still get this warning even if the variable has had a value assigned to it before:
my $str = 'foo';
print "$str\n"; # ok
$str = undef;
print "$str\n"; # emits "uninitialized" warning
By the way, you can see detailed explanations of pretty much all Perl warnings by checking out the perldiag documentation (run perldoc perldiag).
XML::Simpler does not require XML::Parser or a SAX parser.
It does require File::Slurp.
-- grantm, perldoc XML::Simpler