diff options
-rw-r--r-- | lib/Package/Stash/PP.pm | 1 | ||||
-rw-r--r-- | t/warnings-taint.t | 21 |
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; |