jaco has asked for the wisdom of the Perl Monks concerning the following question:
I know why this is happening, however i can't for the life of me figure out how to prevent it.
I have a template file that contains items, like the following
<xml> <file>$rec->{filename}</filename> <ipv4>$rec->{IPAdress}</filename> <something>$foo</something> </xml>
On this file I do the following operation, in order to expand those varaible and hashrefs
for my $line (@template){ $line =~ s/(\$\w+->{\w+})/$1/eeg; $line =~ s/(\$\w+)/$1/eeg; $text .= $line; }
This technically works, however whenever $1 expands to a NULL value in the hashref (pulled from mysql). It errs with Use of uninitialized value in substitution iterator. I've tried a few things to get around it, neither worked, but i'm also unsure if either are techncially legal syntax. Those attempts are as follows
for my $line (@cfile){ $line =~ s/(\$\w+->{\w+})/$1||''/eeg; $line =~ s/(\$\w+)/$1||''/eeg; $text .= $line; }
as well as
for my $line (@cfile){ $line =~ s/(\$\w+->{\w+})/defined $1 ? $1 : ''/eeg; $line =~ s/(\$\w+)/defined $1 ? $1 : ''/eeg; $text .= $line; }
I've seen one example in the Monastery, but it didn't resolve the issue. Any insight would be greatly appreciated.
|
|---|