C:\>perl -we"{my $pop;}" C:\>perl -we"{my $pop;$pop;}" seless use of private variable in void context at -e line 1. C:\>perl -Mdiagnostics -we"{my $pop;$pop;}" Useless use of private variable in void context at -e line 1 (#1) (W void) You did something without a side effect in a context that +does nothing with the return value, such as a statement that doesn't ret +urn a value from a block, or the left side of a scalar comma operator. V +ery often this points not to stupidity on your part, but a failure of P +erl to parse your program the way you thought it would. For example, y +ou'd get this if you mixed up your C precedence with Python precedence a +nd said $one, $two = 1, 2; when you meant to say ($one, $two) = (1, 2); Another common error is to use ordinary parentheses to construct a +list reference when you should be using square or curly brackets, for example, if you say $array = (1,2); when you should have said $array = [1,2]; The square brackets explicitly turn a list value into a scalar valu +e, while parentheses do not. So when a parenthesized list is evaluate +d in a scalar context, the comma is treated like C's comma operator, whi +ch throws away the left argument, which is not what you want. See perlref for more on this. This warning will not be issued for numerical constants equal to 0 +or 1 since they are often used in statements like 1 while sub_with_side_effects() ; String constants that would normally evaluate to 0 or 1 are warned about. C:\>
In reply to Re: useless Useless warning
by Anonymous Monk
in thread useless Useless warning
by aufflick
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |