VMS syntax nit in new MakeMaker test.
[p5sagit/p5-mst-13.2.git] / t / op / local.t
index 5aea967..8bfea00 100755 (executable)
@@ -5,7 +5,7 @@ BEGIN {
     @INC = qw(. ../lib);
     require './test.pl';
 }
-plan tests => 114;
+plan tests => 122;
 
 my $list_assignment_supported = 1;
 
@@ -428,3 +428,37 @@ sub f { ok(0 == $[); }
     
 }
 
+# when localising a hash element, the key should be copied, not referenced
+
+{
+    my %h=('k1' => 111);
+    my $k='k1';
+    {
+       local $h{$k}=222;
+
+       is($h{'k1'},222);
+       $k='k2';
+    }
+    ok(! exists($h{'k2'}));
+    is($h{'k1'},111);
+}
+{
+    my %h=('k1' => 111);
+    our $k = 'k1';  # try dynamic too
+    {
+       local $h{$k}=222;
+       is($h{'k1'},222);
+       $k='k2';
+    }
+    ok(! exists($h{'k2'}));
+    is($h{'k1'},111);
+}
+
+# Keep this test last, as it can SEGV
+{
+    local *@;
+    pass("Localised *@");
+    eval {1};
+    pass("Can eval with *@ localised");
+}
+