- is SCOPE, $eval, 'block sub for eval : scope';
- is SCOPE(0), $eval, 'block sub for eval : scope 0';
- is SCOPE(1), $loop, 'block sub for eval : scope 1';
- is SCOPE(2), $sub, 'block sub for eval : scope 2';
- is SCOPE(3), $block, 'block sub for eval : scope 3';
- is CALLER, $eval, 'block sub for eval : caller';
- is CALLER(0), $eval, 'block sub for eval : caller 0';
- is CALLER(1), $sub, 'block sub for eval : caller 1';
- is CALLER(2), $top, 'block sub for eval : caller 2';
- is CALLER(3), $top, 'block sub for eval : caller 3';
+ is SCOPE, $eval, 'block sub for eval : scope';
+ is SCOPE(0), $eval, 'block sub for eval : scope 0';
+ is SCOPE(1), $loop, 'block sub for eval : scope 1';
+ is SCOPE(2), $sub, 'block sub for eval : scope 2';
+ is SCOPE(3), $block, 'block sub for eval : scope 3';
+ is SCOPE(4), $top, 'block sub for eval : scope 4';
+ is CALLER, $eval, 'block sub for eval : caller';
+ is CALLER(0), $eval, 'block sub for eval : caller 0';
+ is CALLER(1), $sub, 'block sub for eval : caller 1';
+ $old_sig_warn = $SIG{__WARN__};
+ local ($SIG{__WARN__}, @warns) = $warn_catcher;
+ is CALLER(2), $top, 'block sub for eval : caller 2';
+ is "@warns", 'smash', 'block sub for eval : caller 2 warns';
+ local $SIG{__WARN__} = $old_sig_warn;