just to add some code example to the excellent explanation by AnomalousMonk
DB<116> use warnings; $a=undef; print "< @{$a} >"
Use of uninitialized value in array dereference at (eval 49)[multi_per
+l5db.pl:644] line 2.
< >
DB<117> use warnings; $a=[]; print "< @{$a} >"
< >
DB<118> use warnings; $a=undef//[]; print "< @{$a} >"
< >
DB<120> use warnings; $a=[1..3]//[]; print "< @{$a} >"
< 1 2 3 >
As you can see generating a list from an nonexistent or undef value causes a warning!
Defaulting to an empty array solves this issue.
Cheers Rolf
( addicted to the Perl Programming Language)
|