Sub-Go
view release on metacpan or search on metacpan
lib/Sub/Go.pm view on Meta::CPAN
for ( 2 .. 3 ) {
my $h = PadWalker::peek_my( $_ );
$self_ref = $h->{ '$_go_self' } and last;
}
!$self_ref and croak 'Misplaced yield. It can only be used in a go block.';
my $self = ${ $self_ref };
$self->{yielded} = 1;
$self->{rest}->{code}->( @_ );
}
sub go(&;@) {
my $code = shift;
my $rest = shift;
return bless { code => $code, rest => $rest }, __PACKAGE__;
}
sub by(&;@) {
my ( $code, $rest ) = @_;
return bless { code => $code, rest => $rest, by => 1 }, __PACKAGE__;
}
1;
=pod
=head1 NAME
( run in 0.400 second using v1.01-cache-2.11-cpan-49f99fa48dc )