http://qs321.pair.com?node_id=432074

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

Hello monks,

I recently ran into a problem with one of my scripts. After chatting with Bart it on the CB I was convinced that I should use qq(..) instead of the here document. My curiosity has the better of me though. I am still trying to figure out what went wrong in my original script. The script itself it really long, but can be viewed at my scratchpad. hok_si_la's scratchpad
In Summation,
########### Works ############## print <<END_OF_PRINT; <blahtag>blah blah $blah</blahtag> <blahtag>blah blah $blah</blahtag> #END_OF_PRINT #&printOwner($data{owner1}); #&printOwner($data{owner2}); #&printOwner($data{owner3}); #print <<END_OF_PRINT; <blahtag>blah blah $blah</blahtag> <blahtag>blah blah $blah</blahtag> END_OF_PRINT ######## Doesn't Work ########## print <<END_OF_PRINT; <blahtag>blah blah $blah</blahtag> <blahtag>blah blah $blah</blahtag> END_OF_PRINT #&printOwner($data{owner1}); #&printOwner($data{owner2}); #&printOwner($data{owner3}); print <<END_OF_PRINT; <blahtag>blah blah $blah</blahtag> <blahtag>blah blah $blah</blahtag> END_OF_PRINT
I am receiving the following warning:

Use of uninitialized value in concatenation (.) or string at D:\wwwroot\NewServer\test\scripts\Gnewserver.pl line 349. Use of uninitialized value in concatenation (.) or string at D:\wwwroot\NewServer\test\scripts\Gnewserver.pl line 349. Use of uninitialized value in concatenation (.) or string at D:\wwwroot\NewServer\test\scripts\Gnewserver.pl line 349. Use of uninitialized value in concatenation (.) or string at D:\wwwroot\NewServer\test\scripts\Gnewserver.pl line 349. Use of uninitialized value in concatenation (.) or string at D:\wwwroot\NewServer\test\scripts\Gnewserver.pl line 349. Use of uninitialized value in concatenation (.) or string at D:\wwwroot\NewServer\test\scripts\Gnewserver.pl line 349. Use of uninitialized value in concatenation (.) or string at D:\wwwroot\NewServer\test\scripts\Gnewserver.pl line 349. Use of uninitialized value in concatenation (.) or string at D:\wwwroot\NewServer\test\scripts\Gnewserver.pl line 349. Use of uninitialized value in concatenation (.) or string at D:\wwwroot\NewServer\test\scripts\Gnewserver.pl line 349. Use of uninitialized value in concatenation (.) or string at D:\wwwroot\NewServer\test\scripts\Gnewserver.pl line 349. Use of uninitialized value in concatenation (.) or string at D:\wwwroot\NewServer\test\scripts\Gnewserver.pl line 349. Use of uninitialized value in concatenation (.) or string at D:\wwwroot\NewServer\test\scripts\Gnewserver.pl line 349. Use of uninitialized value in concatenation (.) or string at D:\wwwroot\NewServer\test\scripts\Gnewserver.pl line 349. Use of uninitialized value in concatenation (.) or string at D:\wwwroot\NewServer\test\scripts\Gnewserver.pl line 349. Operating System: Windows 2003 Server (Standard

The warning is placed in various locations depending on the initial query.

Sorry in advance for writing a book, but I am very curious about the problem.

Your help would be appreciated greatly,
hok_si_la

UPDATE:I figured out one huge prob. I had a lexically global defined %data for my main, and the subroutine printowners defined a %data within its scope. That could not be good.