Test for namedprotos: @_ in string eval
authorSteffen Mueller <smueller@cpan.org>
Sat, 20 Oct 2012 15:26:43 +0000 (17:26 +0200)
committerSteffen Mueller <smueller@cpan.org>
Sat, 20 Oct 2012 15:38:27 +0000 (17:38 +0200)
Using @_ inside a string eval inside a sub with a named proto should
only die at run time.

t/comp/namedproto.t

index 331a5f2..14c7992 100644 (file)
@@ -294,6 +294,10 @@ no_warnings("invalid slurpy parameters");
     ok($legal, "\$#_ restriction doesn't apply to nested subs");
     $legal = eval 'sub banned4 ($foo){ sub not_banned4 { @_ }; }; 1';
     ok($legal, "\@_ restriction doesn't apply to nested subs");
+    $legal = eval 'sub not_banned5 ($foo){ return eval q{"@_"; 1}; } 1';
+    ok($legal, "\@_ restriction not visible in string eval at compile time");
+    $failed = !not_banned5(12);
+    ok($failed, "\@_ restriction in effect for string eval at run time");
 
     # Test aliases too
     *globb = *main::_;