Sub-Go

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

   "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"
         }
      }

META.yml  view on Meta::CPAN

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'
  }
);


dist.ini  view on Meta::CPAN

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 )