[perl #73712] ‘Variable is not imported’ cannot be suppressed
authorFather Chrysostomos <perlbug-followup@perl.org>
Tue, 13 Apr 2010 15:20:19 +0000 (17:20 +0200)
committerRafael Garcia-Suarez <rgs@consttype.org>
Tue, 13 Apr 2010 15:45:59 +0000 (17:45 +0200)
commit413ff9f68feafcc9f84f1fbb43e6d6aa91adce9d
treeb0191cacd067370ef62a75c4c4612e45ae9b7665
parent0654a75e074535dcbc7f1c16194a38b527c9baa7
[perl #73712] ‘Variable is not imported’ cannot be suppressed

The message ‘Variable "%s" is not imported’ cannot be suppressed, even
with -X (local $SIG{__WARN__}=sub{} is what I have to use):

perl -Xle '$foo;use strict; eval q/$foo/ or die "---$@---"'
Variable "$foo" is not imported at (eval 1) line 2.
---Global symbol "$foo" requires explicit package name at (eval 1) line 2.
--- at -e line 1.

This is because we have what appears to the user to be a multi-line
error message. It is in fact a warning ‘Variable...’ followed by an
error ‘Global symbol...’.

The attached patch assigns a warning category to the warning.
gv.c
pod/perldiag.pod
t/lib/strict/vars