Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re^2: The Null Mull (or, when OO needs more O)

by diotalevi (Canon)
on Nov 29, 2004 at 21:49 UTC ( [id://411053]=note: print w/replies, xml ) Need Help??


in reply to Re: The Null Mull (or, when OO needs more O)
in thread The Null Mull (or, when OO needs more O)

undef isn't normally an lvalue. How about trying that as ${ \ undef } = ... instead?

Replies are listed 'Best First'.
Re^3: The Null Mull (or, when OO needs more O)
by hardburn (Abbot) on Nov 29, 2004 at 21:52 UTC

    Still no:

    BEGIN { &Internals::SvREADONLY(\undef, 0); ${ \undef } = 42; &Internals::SvREADONLY(\undef, 1); } my $x = undef; print( ((undef) ? 'True' : 'False'), $/); print( ((defined undef) ? 'True' : 'False'), $/); print( (($x) ? 'True' : 'False'), $/); print( ((defined $x) ? 'True' : 'False'), $/); print $x; __OUTPUT__ True True False False

    "There is no shame in being self-taught, only in not trying to learn in the first place." -- Atrus, Myst: The Book of D'ni.

      Aha. my $x = undef wasn't as simple as we thought. $x was being cleared without PL_undef actually being assigned. Swap the right side for something more complicated like $hash{'non-existant'} and you'll find that $x is now 42.
        That's a pity ... I thought the undef function was supposed to return PL_undef if you passed it no parameters. At least, that's what the Perl cookbook implies on p369, as well as the Camel in its discussion of the undef function in the Appendices. Why wouldn't it work? (And, yes, I'm scared of spelunking the Perl codebase.)

        Being right, does not endow the right to be rude; politeness costs nothing.
        Being unknowing, is not the same as being stupid.
        Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
        Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (8)
As of 2024-04-23 09:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found