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

Re: Coroutines in Perl

by davido (Cardinal)
on May 07, 2004 at 06:17 UTC ( #351370=note: print w/replies, xml ) Need Help??


in reply to Coroutines in Perl

I'm not sure if I'm missing the point, but here's one example of a routine that uses lexical scoping, named blocks and goto to invoke different segments of code in the routine each time it's called.

use strict; use warnings; { my $location = "FIRST"; sub jumparound { goto $location; FIRST: { print "First segment.\n"; $location = "SECOND"; return; } SECOND: { print "Second segment.\n"; $location = "FIRST"; return; } } } jumparound(); jumparound(); jumparound();

And the output is:

First segment. Second segment. First segment.

This snippet seems to satisfy "preserve the values of their local variables between successive calls."

It also satisfies "appears to be like subroutines with multiple entry and exit points."

But I haven't read Knuth (and I'm beginning to feel like it's high time I do), so I'm not sure if my snippet satisfies all of the requirements.


Dave

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (4)
As of 2022-12-06 20:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?