#!/usr/bin/perl use strict; use warnings; use Test::More 'no_plan'; use ok 'Devel::Events::Filter::Callback'; use Devel::Events::Handler::Callback; my @events; my $h = Devel::Events::Handler::Callback->new(sub { push @events, [@_] }); { my $f = Devel::Events::Filter::Callback->new( callback => sub { @_, "foo" }, handler => $h, ); $f->new_event("bar"); $f->new_event("gorch"); is_deeply( \@events, [[qw/bar foo/], [qw/gorch foo/]], "filter"); } @events = (); { my $i; my $f = Devel::Events::Filter::Callback->new( callback => sub { return if $i++ % 2 == 0; return @_ }, handler => $h, ); $f->new_event($_) for qw/foo bar gorch baz/; is_deeply(\@events, [["bar"],["baz"]], "filter drop"); }