in reply to Re: Warning for checking with undef
in thread Warning for checking with undef
Erm, undef without parens returns a perfectly valid value in that context. The problem is that it's being coerced into a numeric value because of the == which triggers the warning.
What you're thinking of is using undef or shift as a hash key ($h{undef}) or to the left of a => (%a = ( undef => 1 )) where there is some bareword magic going on (strict or no). In those cases it is necessary to use parens or a + to disable the magic.
Update: And you can verify it by looking at the different errors produced. Bareword-ness doesn't enter into it.
freebie:~ 746> cat baz use warnings; if( 5 == undef ) { 1 } if( 5 == "undef" ) { 1 } freebie:~ 747> perl baz Argument "undef" isn't numeric in numeric eq (==) at baz line 3. Use of uninitialized value in numeric eq (==) at baz line 2.
The first one gripes about comparing against undef, the second because you're comparing a non-numeric value numerically.
--
We're looking for people in ATL
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Warning for checking with undef
by anonymized user 468275 (Curate) on Jul 07, 2005 at 15:00 UTC | |
by Fletch (Bishop) on Jul 07, 2005 at 15:05 UTC | |
|