package t::MyTest; use Test::Base -Base; #some stuff here package t::MyTest::Filter; use base 'Test::Base::Filter'; sub choose { print @_; return {foo => 'bar'} if($_[0] eq '1'); return undef; } sub is_defined{ print @_; defined $_[0]; } #### use t::MyTest; filters {input => [qw(choose is_defined)] }; __END__ === First --- input 1 --- expected: 1 === Second --- input 0 --- expected: 0 #### t\01-test.t .. Use of uninitialized value $_[1] in print at t/MyTest.pm line 14, line 1. 1 t::MyTest::Filter=HASH(0x2af1670)ok 1 - First 1..1 Failed 1/1 subtests Test Summary Report ------------------- t\01-test.t (Wstat: 0 Tests: 0 Failed: 0) Parse errors: Bad plan. You planned 1 tests but ran 0. Files=1, Tests=0, 1 wallclock secs ( 0.06 usr + 0.23 sys = 0.30 CPU) Result: FAIL