use Contextual::Return;
sub bar {
return 'in bar';
}
sub foo {
return
BOOL { 0 }
LIST { 1,2,3 }
NUM { 42 }
STR { 'forty-two' }
SCALAR { 86 }
RECOVER { RESULT { wantarray ? 1..9 : 99 } }
;
}
package Other;
use Test::More qw< no_plan >;
is_deeply [ ::foo() ], [1..9] => 'LIST context';
is do{ ::foo() ? 'true' : 'false' }, 'true' => 'BOOLEAN context';
is 0+::foo(), 99 => 'NUMERIC context';
is "".::foo(), '99' => 'STRING context';