CPS

 view release on metacpan or  search on metacpan

t/02kforeach.t  view on Meta::CPAN

#!/usr/bin/perl

use strict;
use warnings;

use Test::More;

use CPS qw( kforeach );

my @nums;

kforeach(
   [ 1, 2, 3 ],
   sub {
      my ( $item, $knext ) = @_;

      push @nums, $item;

      $knext->();
   },
   sub {
      push @nums, "finished";
   },
);

is_deeply( \@nums, [ 1, 2, 3, "finished" ], 'kforeach sync - @nums' );

@nums = ();

kforeach(
   [ 4, 5, 6, 7 ],
   sub {
      my ( $item, $knext, $klast ) = @_;

      goto &$klast if $item == 6;
      push @nums, $item;

      $knext->();
   },
   sub {
      push @nums, "finished";
   },
);

is_deeply( \@nums, [ 4, 5, "finished" ], 'kforeach sync - @nums' );

done_testing;



( run in 0.229 second using v1.01-cache-2.11-cpan-73692580452 )