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

Re^2: Context propagation into subs and evals

by LanX (Canon)
on Feb 20, 2012 at 22:10 UTC ( #955165=note: print w/ replies, xml ) Need Help??


in reply to Re: Context propagation into subs and evals
in thread Context propagation into subs and evals

implicit_returns() has two implicit returns, because the calls to tst_context() could be last statement of the sub.

Since no_implicit_return() has an explicit return at the end which must be passed, disabling the implicit returns.

look here

sub tst { 5 } sub tst { return 5 }
Both functions are equivalent, but in the latter the return is explicit.

Cheers Rolf


Comment on Re^2: Context propagation into subs and evals
Download Code
Re^3: Context propagation into subs and evals
by repellent (Priest) on Feb 20, 2012 at 22:18 UTC
    Right, I forgot about the return; so I've striked off my question about no_implicit_return.

    As for implicit_return, I guess I got confused as to the purpose of the if statement. Both the true and false code paths lead to an implicit return of the call to tst_context. Me thinks why bother having the if at all? :-)
      The if shows that multiple statements can be returned implicitly and it's not necessarily the undermost statement.

      If you know of a better example illustrating this - at the same time non-trivial and not complex - I'm open for suggestions. :)

      There is a whole bunch of "Flow-Control-Statements" which could play a role here.

      Cheers Rolf

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (15)
As of 2015-07-01 16:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (12 votes), past polls