develooper 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


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About