Sub-Go
view release on metacpan or search on metacpan
"prereqs" : {
"configure" : {
"requires" : {
"ExtUtils::MakeMaker" : "6.30"
}
},
"runtime" : {
"requires" : {
"Carp" : 0,
"Exporter::Tidy" : 0,
"PadWalker" : 0,
"Scalar::Util" : 0,
"overload" : 0,
"perl" : "v5.10.0"
}
},
"test" : {
"requires" : {
"Test::More" : "0.88"
}
}
dynamic_config: 0
generated_by: 'Dist::Zilla version 4.200009, CPAN::Meta::Converter version 2.110930'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: 1.4
name: Sub-Go
requires:
Carp: 0
Exporter::Tidy: 0
PadWalker: 0
Scalar::Util: 0
overload: 0
perl: v5.10
resources:
bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=Sub-Go
homepage: http://search.cpan.org/perldoc?Sub-Go
repository: git://github.com/rodrigolive/sub-go.git
version: 0.01
Makefile.PL view on Meta::CPAN
'CONFIGURE_REQUIRES' => {
'ExtUtils::MakeMaker' => '6.30'
},
'DISTNAME' => 'Sub-Go',
'EXE_FILES' => [],
'LICENSE' => 'perl',
'NAME' => 'Sub::Go',
'PREREQ_PM' => {
'Carp' => '0',
'Exporter::Tidy' => '0',
'PadWalker' => '0',
'Scalar::Util' => '0',
'overload' => '0'
},
'VERSION' => '0.01',
'test' => {
'TESTS' => 't/*.t'
}
);
copyright_holder = Rodrigo de Oliveira
[@Classic]
[MetaJSON]
[AutoPrereqs]
[Prereqs]
Exporter::Tidy = 0
Scalar::Util = 0
PadWalker = 0
Carp = 0
[MetaResources]
repository = git://github.com/rodrigolive/sub-go.git
bugtracker = http://rt.cpan.org/Public/Dist/Display.html?Name=Sub-Go
homepage = http://search.cpan.org/perldoc?Sub-Go
[ReadmeAnyFromPod / ReadmePodInRoot]
type = pod
filename = README.pod
lib/Sub/Go.pm view on Meta::CPAN
elsif ( ref $_go_self->{rest} eq 'HASH' ) {
%{ $_go_self->{rest} } = @$ret;
}
else {
return @$ret > 1 ? $ret
: $ret->[0] // $ret;
}
}
sub stop {
require PadWalker;
my $self_ref;
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->{stop} = 1;
return bless {}, 'Sub::Go::Break';
}
sub skip {
return bless {}, 'Sub::Go::Break';
}
sub yield {
require PadWalker;
my $self_ref;
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;
lib/Sub/Go.pm view on Meta::CPAN
Tell the iterator to stop executing all blocks.
return stop;
=head1 BUGS
This is pre-alfa, out in the CPAN for a test-drive. There
are still inconsistencies in the syntax that need some
more thought, so expect things to change badly.
L<PadWalker>, a dependency, may segfault in perl 5.14.1.
=head1 SEE ALSO
L<autobox::Core> - has an C<each> method that can be chained together
L<List::Gen>
L<Sub::Chain>
=cut
( run in 1.048 second using v1.01-cache-2.11-cpan-05444aca049 )