Applications are especially when passing "positional" lists or assigning to lists, with "gaps".
i.e.
or($a,undef,$b)=@array; # ignore second parameter
function($a,undef,$b) {..} # treat second parameter as not suppl +ied
The latter is especially necessary if you are checking arguments within the sub for definedness and changing to default values.
UPDATE: An extension of this case is a hash or array element which exists but is not defined!
> Of course I use strictures in all my code!
it's more about use warnings to be warned about undefined variables.
UPDATE:
and please be careful not to return undef to "explicitly" return false.
Subs return lists, so what you are actually doing is returning a one-element list instead of an empty one. I.e. @array=func();
Using a blank return is the same like return (); and won't byte you in list context but in scalar context the variable will be undef anyway.
Cheers Rolf
In reply to Re^3: Perl Style: Is initializing variables considered taboo?
by LanX
in thread Perl Style: Is initializing variables considered taboo?
by ait
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |