Front page | perl.perl5.porters |
Postings from March 2007
[perl #41839] warnings.pm alerts about parentheses incorrectly
Thread Next
From:
OHMAE Yuki
Date:
March 15, 2007 02:01
Subject:
[perl #41839] warnings.pm alerts about parentheses incorrectly
Message ID:
rt-3.6.HEAD-30201-1173939503-325.41839-75-0@perl.org
# New Ticket Created by "OHMAE Yuki"
# Please include the string: [perl #41839]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=41839 >
This is a bug report for perl from yuki-o@is.naist.jp,
generated with the help of perlbug 1.35 running under perl v5.8.8.
Greetings,
I found a bug on warnings.pm (v1.05). This related to the "parenthesis"
category, and Perl builtin function "open". Under Perl 5.6 or later,
"open" can have 3 arguments, and the first one can be a lexical variable.
If other two arguments are also lexical variables (not literal),
warnings.pm produce alerts wrongly:
Parentheses missing around "my" list at test.pl line 10.
If at least one variable is literal, warning does not occur. Predeclared
filehandle or "no warnings qw( parenthesis )" dismissed warnings. Below is
the test.pl:
#!/usr/bin/perl
use 5.006;
use strict;
use warnings;
my $mode = '<';
my $file = 'file';
open my $fh, $mode, $file; # not ok
open my $fh, '<', $file; # ok
open my $fh, $mode, 'file'; # ok
my $fh;
open $fh, $mode, $file; # ok
no warnings qw( parenthesis );
open my $fh, $mode, $file; # ok
Regards,
---
Flags:
category=library
severity=medium
---
Site configuration information for perl v5.8.8:
Configured by SYSTEM at Tue Jan 23 15:57:26 2007.
Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
Platform:
osname=MSWin32, osvers=4.0, archname=MSWin32-x86-multi-thread
uname=''
config_args='undef'
hint=recommended, useposix=true, d_sigaction=undef
usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cl', ccflags ='-nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32
-D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED
-DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
-DUSE_PERLIO -DPERL_MSVCRT_READFIX',
optimize='-MD -Zi -DNDEBUG -O1',
cppflags='-DWIN32'
ccversion='12.00.8804', gccversion='', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=10
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='__int64',
lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='link', ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf
-libpath:"C:\usr\lib\CORE" -machine:x86'
libpth=\lib
libs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib
uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib
msvcrt.lib
perllibs= oldnames.lib kernel32.lib user32.lib gdi32.lib
winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib
oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib
version.lib odbc32.lib odbccp32.lib msvcrt.lib
libc=msvcrt.lib, so=dll, useshrplib=yes, libperl=perl58.lib
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug
-opt:ref,icf -libpath:"C:\usr\lib\CORE" -machine:x86'
Locally applied patches:
ACTIVEPERL_LOCAL_PATCHES_ENTRY
Iin_load_module moved for compatibility with build 806
Avoid signal flag SA_RESTART for older versions of HP-UX
PerlEx support in CGI::Carp
Less verbose ExtUtils::Install and Pod::Find
Patch for CAN-2005-0448 from Debian with modifications
Rearrange @INC so that 'site' is searched before 'perl'
Partly reverted 24733 to preserve binary compatibility
29930 win32.c typo in #define MULTIPLICITY
29868 win32_async_check() can still loop indefinitely
29690,29732 ANSIfy the PATH environment variable on Windows
29689 Add error handling to win32_ansipath
29675 Use short pathnames in $^X and @INC
29607,29676 allow blib.pm to be used for testing Win32 module
29605 Implement killpg() for MSWin32
29598 cwd() to return the short pathname
29597 let readdir() return the alternate filename
29590 Don't destroy the Unicode system environment on Perl startup
29528 get ext/Win32/Win32.xs to compile on cygwin
29509,29510,29511 Move Win32::* functions into Win32 module
29483 Move Win32 from win32/ext/Win32 to ext/Win32
29481 Makefile.PL changes to compile Win32.xs using cygwin
28671 Define PERL_NO_DEV_RANDOM on Windows
28376 Add error checks after execing PL_cshname or PL_sh_path
28305 Pod::Html should not convert \"foo\" into ``foo''
27833 Change anchor generation in Pod::Html for '=item item 2'
27832,27847 fix Pod::Html::depod() for multi-line strings
27736 Make perl_fini() run with Sun WorkShop compiler
27719 Document the functions htmlify() and anchorify() in Pod::Html
27619 Bug in Term::ReadKey being triggered by a bug in Term::ReadLine
27549 Move DynaLoader.o into libperl.so
27528 win32_pclose() error exit doesn't unlock mutex
27527 win32_async_check() can loop indefinitely
27515 ignore directories when searching @INC
27359 Fix -d:Foo=bar syntax
27210 Fix quote typo in c2ph
27203 Allow compiling swigged C++ code
27200 Make stat() on Windows handle trailing slashes correctly
27194 Get perl_fini() running on HP-UX again
27133 Initialise lastparen in the regexp structure
27061 L<PerlIO> and Pod::Html
27034 Avoid \"Prototype mismatch\" warnings with autouse
26970 Make Passive mode the default for Net::FTP
26921 Avoid getprotobyname/number calls in IO::Socket::INET
26897,26903 Make common IPPROTO_* constants always available
26670 Make '-s' on the shebang line parse -foo=bar switches
26637 Make Borland and MinGW happy with change 26379
26536 INSTALLSCRIPT versus INSTALLDIRS
26379 Fix alarm() for Windows 2003
26087 Storable 0.1 compatibility
25861 IO::File performace issue
25084 long groups entry could cause memory exhaustion
24699 ICMP_UNREACHABLE handling in Net::Ping
---
@INC for perl v5.8.8:
C:/usr/site/lib
C:/usr/lib
.
---
Environment for perl v5.8.8:
HOME (unset)
LANG (unset)
LANGUAGE (unset)
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=C:\usr\site\bin;C:\usr\bin;C:\Perl\bin\;c:\program
files\imagemagick-6.2.4-q16;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program
Files\QuickTime\QTSystem\;C:\Program Files\cvsnt;C:\Program
Files\Subversion\bin;C:\Program Files\Java\jdk1.5.0_09\bin;C:\Documents
and Settings\ohmae\My Documents\Program Files\jacobe.win32;C:\Documents
and Settings\ohmae\My Documents\Program Files\tidy-060405-exe;C:\Documents
and Settings\ohmae\My Documents\Program
Files\csstidy-exe-1.2;C:\Perl\site\bin
PERL_BADLANG (unset)
SHELL (unset)
--
大前 勇輝 (OHMAE Yuki)
Systems Biology Lab, Nara Institute of Science and Technology
Thread Next
-
[perl #41839] warnings.pm alerts about parentheses incorrectly
by OHMAE Yuki