Array-Extract

 view release on metacpan or  search on metacpan

t/extract.t  view on Meta::CPAN

#!/usr/bin/env perl

use strict;
use warnings;

# write a package that keeps track of the number of splices
# we do just to be on the safe side
package SpliceCounter;
use Tie::Array;
use base qw(Tie::StdArray);

our $splice_counter;

sub SPLICE {
	$splice_counter++;
	my $self = shift;
	return $self->SUPER::SPLICE(@_);
}

package main;

use Test::More tests => 3;

use Array::Extract qw(extract);

my @array;
tie @array, "SpliceCounter";
push @array, qw(MufasaLion SimbaLion Timone NarlaLion Pumba ScarLion);

my @preditors = extract { /Lion/ } @array;

is_deeply \@preditors, [qw( MufasaLion SimbaLion NarlaLion ScarLion )], "It's the circle!";
is_deeply \@array,     [qw( Timone Pumba )], "circle of life!";

is($SpliceCounter::splice_counter, 3, "And it took just three splices");



( run in 0.931 second using v1.01-cache-2.11-cpan-39bf76dae61 )