use Contextual::Return;
use Test::More tests => 8;
no warnings 'uninitialized';
sub foo {
return
BOOL { die 'oops! Bool'; 1 }
NUM { die 'oops! Num'; return 7; }
STR { die 'oops! Num'; return 7; }
VOID { die 'Enter not the Abyss!'; }
RECOVER { ok 1 => "Recovered"; }
;
}
my $foo = foo();
ok +($foo?0:1) => 'BOOLEAN';
ok not("$foo") => 'STRING';
ok not(0+$foo) => 'NUM';
ok do{;foo;1} => 'VOID';