Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: Dualvars besides $!

by moritz (Cardinal)
on Jan 27, 2014 at 17:11 UTC ( [id://1072250]=note: print w/replies, xml ) Need Help??


in reply to Dualvars besides $!

Not a variable, but a value: the value for false, which you can generate with !1.

It return '' in string context and 0 in numeric context, and doesn't warn in numeric context like the empty string normally does:

$ perl -wE 'say 0+""' Argument "" isn't numeric in addition (+) at -e line 1. 0 $ perl -wE 'say 0+!1' 0

My version of Scalar::Util doesn't export an is_dual function, so I can't check. It helps to type that without the _ :-)

Update: I should have mentioned it earlier: even though the thing is called a "dualvar", it's not actually variables that are tested; values are being tested. It makes no difference if those values are return values, stored in array, or are stored in a scalar variable.

Replies are listed 'Best First'.
Re^2: Dualvars besides $!
by davido (Cardinal) on Jan 27, 2014 at 18:05 UTC

    A value for "true" is also dualvar:

    perl -MScalar::Util -E 'say Scalar::Util::isdual(!0)'

    ...outputs '1', indicating the test was true.


    Dave

Re^2: Dualvars besides $!
by szabgab (Priest) on Jan 27, 2014 at 17:36 UTC
    wow !1. I have not heard of that earlier. greping the pods of 5.18.2 - it is not mentioned there either. But it works as you showed.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (4)
As of 2024-03-29 05:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found