summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/Package/Stash/PP.pm1
-rw-r--r--t/warnings-taint.t21
2 files changed, 22 insertions, 0 deletions
diff --git a/lib/Package/Stash/PP.pm b/lib/Package/Stash/PP.pm
index dee2125..fa8db40 100644
--- a/lib/Package/Stash/PP.pm
+++ b/lib/Package/Stash/PP.pm
@@ -193,6 +193,7 @@ sub add_symbol {
local *__ANON__:: = $namespace;
no strict 'refs';
no warnings 'void';
+ no warnings 'once';
*{"__ANON__::$name"};
}
diff --git a/t/warnings-taint.t b/t/warnings-taint.t
new file mode 100644
index 0000000..0fc9758
--- /dev/null
+++ b/t/warnings-taint.t
@@ -0,0 +1,21 @@
+#!/usr/bin/env perl -T
+use strict;
+use warnings;
+use Test::More;
+
+use Package::Stash;
+
+my $warnings;
+BEGIN {
+ $warnings = '';
+ $SIG{__WARN__} = sub { $warnings .= $_[0] };
+}
+
+BEGIN {
+ my $stash = Package::Stash->new('Foo');
+ $stash->get_or_add_symbol('$bar');
+}
+
+is($warnings, '');
+
+done_testing;