Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: "no warnings 'uninitialized'" failing

by Mr. Muskrat (Canon)
on Oct 16, 2017 at 18:53 UTC ( [id://1201468] : note . print w/replies, xml ) Need Help??


in reply to "no warnings 'uninitialized'" failing

It looks like $data is undefined.

#!/bin/env perl use strict; use warnings; use XML::Simple; # From https://metacpan.org/pod/XML::Simple#QUICK-START my $data = { 'logdir' => '/var/log/foo/', 'debugfile' => '/tmp/foo.debug', 'server' => { 'sahara' => { 'osversion' => '2.6', 'osname' => 'solaris', 'address' => [ '10.0.0.101', '10.0.1.101' ] }, 'gobi' => { 'osversion' => '6.5', 'osname' => 'irix', 'address' => [ '10.0.0.102' ] }, 'kalahari' => { 'osversion' => '2.0.34', 'osname' => 'linux', 'address' => [ '10.0.0.103', '10.0.1.103' ] } } }; print "XMLout with data defined:\n\n", xml_out($data), "\n\n"; #print "XMLout with data undefined:\n\n", xml_out(undef), "\n\n"; sub xml_out { my $data = shift; my $xmlout = XMLout($data, NoAttr => 1, RootName => undef, SuppressE +mpty => 0); return '<xml version="1.0" encoding="UTF-8">' . "\n$xmlout</xml>"; }

Running this produces no warning but if you uncomment the second print it does.