##
$test->($t); # Sending the $t object as the first arg...
####
. . . unless eval "\$t->$test()";
####
sub create_closure {
my $t = shift;
my $m = shift;
my $r = eval 'sub { $t->' . $m . '() }';
}
####
my @execute{@tests} = map { create_closure( $t, $_ ) } @tests;
####
foreach my $test (@tests){
if($mask & $byte{$test}){
$mask = $mask ^ $byte{$test} unless &$execute{$test};
#if the test returned false we unset the bit
}
}