summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2011-12-10 20:02:27 -0600
committerJesse Luehrs <doy@tozt.net>2011-12-10 20:02:27 -0600
commit9a7de0590d520b1676507850d4cd38e31ec4ab6d (patch)
treefa4641955b96ac191050235c3d5febb418fc8e61
parent21f4126b5fdf6fe80a12e85574b9f8a9134ca610 (diff)
downloadpackage-stash-xs-9a7de0590d520b1676507850d4cd38e31ec4ab6d.tar.gz
package-stash-xs-9a7de0590d520b1676507850d4cd38e31ec4ab6d.zip
work around glob brokenness on pre-5.14
-rw-r--r--t/anon-basic.t41
1 files changed, 27 insertions, 14 deletions
diff --git a/t/anon-basic.t b/t/anon-basic.t
index fc26f12..2b7575c 100644
--- a/t/anon-basic.t
+++ b/t/anon-basic.t
@@ -272,13 +272,17 @@ like(exception {
is_deeply([Package::Stash->new('Foo')->list_all_symbols], [],
"Foo:: isn't touched");
+# *{ $Quux->{foo} } = \23 doesn't work on 5.12 and lower, apparently
my $Quux = Package::Anon->new('Quux');
-$Quux->{foo} = *{ Symbol::gensym() };
-*{ $Quux->{foo} } = \23;
-*{ $Quux->{foo} } = ["bar"];
-*{ $Quux->{foo} } = { baz => 1 };
-*{ $Quux->{foo} } = sub { };
-*{ $Quux->{foo} } = *{ Symbol::geniosym() }{IO};
+{
+ my $gv = Symbol::gensym;
+ *$gv = \23;
+ *$gv = ["bar"];
+ *$gv = { baz => 1 };
+ *$gv = sub { };
+ *$gv = *{ Symbol::geniosym() }{IO};
+ $Quux->{foo} = *$gv;
+}
{
my $stash = Package::Stash->new($Quux);
@@ -329,16 +333,25 @@ is_deeply([Package::Stash->new('Quux')->list_all_symbols], [],
my $Quuux = Package::Anon->new('Quuux');
-$Quuux->{foo} = *{ Symbol::gensym() };
-*{ $Quuux->{foo} } = \(my $scalar);
-*{ $Quuux->{foo} } = [];
+{
+ my $gv = Symbol::gensym;
+ *$gv = \(my $scalar);
+ *$gv = [];
+ $Quuux->{foo} = *$gv;
+}
-$Quuux->{bar} = *{ Symbol::gensym() };
-*{ $Quuux->{bar} } = [];
+{
+ my $gv = Symbol::gensym;
+ *$gv = [];
+ $Quuux->{bar} = *$gv;
+}
-$Quuux->{baz} = *{ Symbol::gensym() };
-*{ $Quuux->{baz} } = {};
-*{ $Quuux->{baz} } = sub { };
+{
+ my $gv = Symbol::gensym;
+ *$gv = {};
+ *$gv = sub { };
+ $Quuux->{baz} = *$gv;
+}
$Quuux->{quux} = \1;