Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re^3: "last expression" quiz

by sauoq (Abbot)
on Oct 20, 2005 at 09:38 UTC ( [id://501584]=note: print w/replies, xml ) Need Help??


in reply to Re^2: "last expression" quiz
in thread "last expression" quiz

Does anybody disagree with that conclusion?

I certainly don't. An even better example:

sub foo { 1 for 1 }
Now there's only one expression which always evaluates to the same thing, 1, and yet the sub unintuitively returns !1. Certainly a patch is needed. Whether it should just be a doc patch to perlsub or different behavior should be forced, I don't know.

-sauoq
"My two cents aren't worth a dime.";

Replies are listed 'Best First'.
Re^4: "last expression" quiz
by halley (Prior) on Oct 20, 2005 at 14:08 UTC
    Okay, I figured it was some peephole optimization thing. This is not what I would have predicted for deparse output, but it kind of makes sense.
    $ perl -MO=Deparse -e 'sub foo { 1 for 1 } foo' sub foo { foreach $_ (1) { '???'; } } foo ; -e syntax OK
    The '???' appears for other constants, with which it would generate "useless use of constant in void context" warnings. This warning is suppressed for a few common constants. So I guess the opcode optimizer just forgets WHAT constant was there.

    --
    [ e d @ h a l l e y . c c ]

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (4)
As of 2024-04-25 16:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found