NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.
All the Perl that's Practical to Extract and Report
Stories, comments, journals, and other submissions on use Perl; are Copyright 1998-2006, their respective owners.
Sub::Current for the Win! (Score:1)
See, this is exactly why I love Perl, cause there is always a something on CPAN that will make your life easier.
- Stevan
Re: (Score:2)
That's great, but solve my 'yield' problem and I'll really love you :)
Re: (Score:1)
I took the dog for a walk and thought about this a bit and realized where my scoping issue was. Here is a sugared version, probably could be a little cleaner still, maybe even with some subroutine attributes (sub foo : continuation { ... } or something).
yieldness (Score:1)
use strict;
use Coro::Generator;
{
package Foo;
sub new { bless { val => $_[1] } => $_[0] }
sub inc { $_[0]->{val} += $_[1] }
sub val { shift->{val} }
}
my $inner_testy = generator {
my $foo = pop;
foreach my $item (@_) {
$foo->inc($item);
yield($foo);
}
yield undef;
};
sub testy {
my $action = pop;
my $foo = Foo->new(1);
$action->($foo) while $inner_testy->( @_, $foo );
}
testy(1,2,3, sub { print $_[0]->val . "\n" });
Reply to This
Parent