Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Closure warning with Perl 5.14?

by wind (Priest)
on May 19, 2011 at 08:44 UTC ( #905635=note: print w/replies, xml ) Need Help??


in reply to Closure warning with Perl 5.14?

Remove the if after the declaration of $color. It serves no purpose and is leading to the error:
my $color = shift;
If you were ever to need initialize a variable conditionally, be sure to use the ternary operator
my $variable = $condition ? 'value' : undef;

Replies are listed 'Best First'.
Re^2: Closure warning with Perl 5.14?
by BerntB (Deacon) on May 19, 2011 at 08:51 UTC

    Thanks. Yeah, that is the way to remove the warning.

    The parameter is documented as optional, so I thought the code looked most obvious like that. I'll update my Best Practices.

Re^2: Closure warning with Perl 5.14?
by anonymized user 468275 (Curate) on May 19, 2011 at 11:35 UTC
    By coincidence I have been having a similar problem in 5.8.2. When assigning a variable to a match backreference, at outer scope there was no warning when the match failed. When assigning it to a variable at level 1 loop scope from within a level 2 loop, it gave the warning that something was uninitialised in the match expression (an untrue statement). Furthermore, even using the ternary operator to force the variable to '' on match failure, the match warning was delayed until the variable was subsequently tested with a simple "if ($var)" at which point it made even less sense. I get the impression that Perl can sometimes catch its feet slightly when trying to process potential uninitialisation for variables being updated or initialised in a different lexical and sub-global scope from which they were declared.

    One world, one people

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://905635]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (6)
As of 2023-09-25 22:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?