Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re^2: Context propagation into subs and evals

by LanX (Chancellor)
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

Replies are listed 'Best First'.
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?
[ambrus]: Corion: from the docs, it definitely looks like it would be possible to write an AnyEvent driver for it using Prima::File and Prima::Timer.
[ambrus]: (I haven't found an idle event.)
[ambrus]: However, I also looked at the internals, and found two interesting things:
[marto]: stupid xpath question, I have a xpath copied from the browser, is the * wildcard supposed to work for IDs? e.g. '//*[@id="*"]/ div/div/header/p/a '?
[ambrus]: The main loop for unixish systems is in https://metacpan. org/source/ KARASIK/Prima-1. 49/unix/apc_app.c. It is a hand-rolled select loop, but also always spins at least once every 0.2 seconds for some reason.
[ambrus]: marto: no, not that way. if you just want to test for an existing id attribute, then write *[@id] , or you can match a regexp to the value of that attribute like *[@id=~/something/ ]
[marto]: ambrus, thanks I ended up going with '//*[starts- with(@id, "thread_")]...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (6)
As of 2016-12-08 10:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (140 votes). Check out past polls.