From 75c2df38ef4dd32445753354846356f8a058c298 Mon Sep 17 00:00:00 2001 From: Niko Tyni Date: Sun, 21 Sep 2014 11:58:51 +0300 Subject: Fix a spurious warning under taint mode Bug-Debian: https://bugs.debian.org/762334 --- lib/Package/Stash/PP.pm | 1 + t/warnings-taint.t | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 t/warnings-taint.t 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; -- cgit v1.2.3