Skip Menu |
Report information
Id: 8045
Status: pending release
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: abigail <abigail [at] foad.org>
der-pepe <pepe [at] cpan.org>
rob.dixon [at] gmx.com
Cc:
AdminCc:

Operating System: Linux
PatchStatus: (no value)
Severity: medium
Type:
Perl Version: 5.7.2
Fixed In: (no value)



From: abigail [...] foad.org
Date: Wed, 12 Dec 2001 18:31:43 +0100
To: perl5-porters [...] perl.org
Cc: perlbug [...] perl.org
Subject: Autoquoting of bare words fails sometimes.
Download (untitled) / with headers
text/plain 3.6k
This is a bug report for perl from abigail@hermione.osp.nl, generated with the help of perlbug 1.33 running under perl v5.7.2. ----------------------------------------------------------------- [Please enter your report here] use strict; print sub {{colour => "blue"}} -> () {colour}, "\n"; This fails to compile with the message: Bareword "colour" not allowed while "strict subs" in use at q.pl line 2. Execution of q.pl aborted due to compilation errors. There's no problem if we add the optional arrow, or if we quote the bareword: use strict; print sub {{colour => "blue"}} -> () -> {colour}, "\n"; blue use strict; print sub {{colour => "blue"}} -> () {"colour"}, "\n"; blue The same happens in 5.6.1. [Please do not change anything below this line] ----------------------------------------------------------------- --- Flags: category=core severity=medium --- Site configuration information for perl v5.7.2: Configured by abigail at Fri Nov 23 17:03:17 CET 2001. Summary of my perl5 (revision 5.0 version 7 subversion 2 patch 13197) configuration: Platform: osname=linux, osvers=2.4.5, archname=i686-linux-64int-ld uname='linux hermione 2.4.5 #6 fri jun 22 01:38:20 pdt 2001 i686 unknown ' config_args='-Doptimize=-g -Dusedevel -Duse64bitall -Dusemorebits -Uversiononly -des -Dprefix=/opt/bleadperl' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=define use64bitall=undef uselongdouble=define usemymalloc=n, bincompat5005=define Compiler: cc='cc', ccflags ='-DDEBUGGING -fno-strict-aliasing -I/usr/local/include -I/opt/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-g', cppflags='-DDEBUGGING -fno-strict-aliasing -I/usr/local/include -I/opt/local/include' ccversion='', gccversion='2.95.3 20010315 (release)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long long', ivsize=8, nvtype='long double', nvsize=12, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib -L/opt/local/lib' libpth=/usr/local/lib /opt/local/lib /lib /usr/lib libs=-lnsl -lndbm -lgdbm -ldl -lm -lc -lcrypt -lutil perllibs=-lnsl -ldl -lm -lc -lcrypt -lutil libc=/lib/libc-2.2.3.so, so=so, useshrplib=false, libperl=libperl.a Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic' cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib -L/opt/local/lib' Locally applied patches: DEVEL13165 --- @INC for perl v5.7.2: /home/abigail/Perl /home/abigail/Sybase /opt/bleadperl/lib/5.7.2/i686-linux-64int-ld /opt/bleadperl/lib/5.7.2 /opt/bleadperl/lib/site_perl/5.7.2/i686-linux-64int-ld /opt/bleadperl/lib/site_perl/5.7.2 /opt/bleadperl/lib/site_perl . --- Environment for perl v5.7.2: HOME=/home/abigail LANG (unset) LANGUAGE (unset) LC_ALL=POSIX LD_LIBRARY_PATH=/home/abigail/Lib:/usr/local/lib:/usr/lib:/lib:/usr/X11R6/lib:/opt/gnome/lib LOGDIR (unset) PATH=/home/abigail/Bin:/opt/perl/bin:/usr/local/bin:/usr/local/X11/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/games:/opt/povray/bin:/opt/gnome/bin:/opt/opera/bin:/usr/share/texmf/bin:/opt/Acrobat4/bin:/opt/java/blackdown/j2sdk1.3.1/bin:/usr/local/games/bin:/opt/gnuplot/bin PERL5LIB=/home/abigail/Perl:/home/abigail/Sybase PERLDIR=/opt/perl PERL_BADLANG (unset) SHELL=/usr/bin/bash
Subject: Hash keys are not always parsed as strings if the arrow is omitted
Date: Wed, 21 Apr 2010 17:25:27 +0200
To: perlbug [...] perl.org
From: Christoph Bussenius <pepe [...] cpan.org>
Download (untitled) / with headers
text/plain 9.9k
This is a bug report for perl from pepe@cpan.org, generated with the help of perlbug 1.39 running under perl 5.10.1. ----------------------------------------------------------------- Hi, $ perl -lwe 'my $foo = sub { return {xyz => 42}; }; print $foo->()->{xyz}' 42 $ perl -lwe 'my $foo = sub { return {xyz => 42}; }; print $foo->(){xyz}' Unquoted string "xyz" may clash with future reserved word at -e line 1. 42 $ perl -lwe 'my $foo = sub { return {length => 42}; }; print $foo->()->{length}' 42 $ perl -lwe 'my $foo = sub { return {length => 42}; }; print $foo->(){length}' Use of uninitialized value $_ in length at -e line 1. Use of uninitialized value in print at -e line 1. [empty output line] In the second and fourth line, the arrow between "()" and "{...}" was omitted. Somehow this seems to make perl treat the hash key as a bareword: If it is a known bareword like "length", it is not treated as a string; if it is an unknown bareword like "xyz", a warning is shown. I would think that hash keys in curlies are always parsed as strings, regardless of the omitting of the arrow. So I'd expect example 4 to print 42 just like the other ones, and I'd expect none of these examples to print any warnings. perlref says: Similarly, because of all the subscripting that is done using single words, we've applied the same rule to any bareword that is used for subscripting a hash. So now, instead of writing $array{ "aaa" }{ "bbb" }{ "ccc" } you can write just $array{ aaa }{ bbb }{ ccc } and not worry about whether the subscripts are reserved words. While () is not a real subscript, this is no reason to treat the barewords differently, imho. Cheers, Christoph ----------------------------------------------------------------- --- Flags: category=core severity=low --- Site configuration information for perl 5.10.1: Configured by Debian Project at Sun Feb 7 13:06:31 UTC 2010. Summary of my perl5 (revision 5 version 10 subversion 1) configuration: Platform: osname=linux, osvers=2.6.32-trunk-amd64, archname=x86_64-linux-gnu-thread-multi uname='linux madeleine 2.6.32-trunk-amd64 #1 smp sun jan 10 22:40:40 utc 2010 x86_64 gnulinux ' config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=x86_64-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.10 -Darchlib=/usr/lib/perl/5.10 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.10.1 -Dsitearch=/usr/local/lib/perl/5.10.1 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib -Dlibperl=libperl.so.5.10.1 -Dd_dosuid -des' hint=recommended, useposix=true, d_sigaction=define useithreads=define, usemultiplicity=define useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=define, use64bitall=define, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2 -g', cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include' ccversion='', gccversion='4.4.3', gccosandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='cc', ldflags =' -fstack-protector -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib /lib64 /usr/lib64 libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt perllibs=-ldl -lm -lpthread -lc -lcrypt libc=/lib/libc-2.10.2.so, so=so, useshrplib=true, libperl=libperl.so.5.10.1 gnulibc_version='2.10.2' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fPIC', lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector' Locally applied patches: DEBPKG:debian/arm_thread_stress_timeout - http://bugs.debian.org/501970 Raise the timeout of ext/threads/shared/t/stress.t to accommodate slower build hosts DEBPKG:debian/cpan_config_path - Set location of CPAN::Config to /etc/perl as /usr may not be writable. DEBPKG:debian/cpan_definstalldirs - Provide a sensible INSTALLDIRS default for modules installed from CPAN. DEBPKG:debian/db_file_ver - http://bugs.debian.org/340047 Remove overly restrictive DB_File version check. DEBPKG:debian/doc_info - Replace generic man(1) instructions with Debian-specific information. DEBPKG:debian/enc2xs_inc - http://bugs.debian.org/290336 Tweak enc2xs to follow symlinks and ignore missing @INC directories. DEBPKG:debian/errno_ver - http://bugs.debian.org/343351 Remove Errno version check due to upgrade problems with long-running processes. DEBPKG:debian/extutils_hacks - Various debian-specific ExtUtils changes DEBPKG:debian/fakeroot - Postpone LD_LIBRARY_PATH evaluation to the binary targets. DEBPKG:debian/instmodsh_doc - Debian policy doesn't install .packlist files for core or vendor. DEBPKG:debian/ld_run_path - Remove standard libs from LD_RUN_PATH as per Debian policy. DEBPKG:debian/libnet_config_path - Set location of libnet.cfg to /etc/perl/Net as /usr may not be writable. DEBPKG:debian/m68k_thread_stress - http://bugs.debian.org/495826 Disable some threads tests on m68k for now due to missing TLS. DEBPKG:debian/mod_paths - Tweak @INC ordering for Debian DEBPKG:debian/module_build_man_extensions - http://bugs.debian.org/479460 Adjust Module::Build manual page extensions for the Debian Perl policy DEBPKG:debian/perl_synopsis - http://bugs.debian.org/278323 Rearrange perl.pod DEBPKG:debian/prune_libs - http://bugs.debian.org/128355 Prune the list of libraries wanted to what we actually need. DEBPKG:debian/use_gdbm - Explicitly link against -lgdbm_compat in ODBM_File/NDBM_File. DEBPKG:fixes/assorted_docs - http://bugs.debian.org/443733 [384f06a] Math::BigInt::CalcEmu documentation grammar fix DEBPKG:fixes/net_smtp_docs - http://bugs.debian.org/100195 [rt.cpan.org #36038] Document the Net::SMTP 'Port' option DEBPKG:fixes/processPL - http://bugs.debian.org/357264 [rt.cpan.org #17224] Always use PERLRUNINST when building perl modules. DEBPKG:debian/perlivp - http://bugs.debian.org/510895 Make perlivp skip include directories in /usr/local DEBPKG:fixes/pod2man-index-backslash - http://bugs.debian.org/521256 Escape backslashes in .IX entries DEBPKG:debian/disable-zlib-bundling - Disable zlib bundling in Compress::Raw::Zlib DEBPKG:fixes/kfreebsd_cppsymbols - http://bugs.debian.org/533098 [3b910a0] Add gcc predefined macros to $Config{cppsymbols} on GNU/kFreeBSD. DEBPKG:debian/cpanplus_definstalldirs - http://bugs.debian.org/533707 Configure CPANPLUS to use the site directories by default. DEBPKG:debian/cpanplus_config_path - Save local versions of CPANPLUS::Config::System into /etc/perl. DEBPKG:fixes/kfreebsd-filecopy-pipes - http://bugs.debian.org/537555 [16f708c] Fix File::Copy::copy with pipes on GNU/kFreeBSD DEBPKG:fixes/anon-tmpfile-dir - http://bugs.debian.org/528544 [perl #66452] Honor TMPDIR when open()ing an anonymous temporary file DEBPKG:fixes/abstract-sockets - http://bugs.debian.org/329291 [89904c0] Add support for Abstract namespace sockets. DEBPKG:fixes/hurd_cppsymbols - http://bugs.debian.org/544307 [eeb92b7] Add gcc predefined macros to $Config{cppsymbols} on GNU/Hurd. DEBPKG:fixes/autodie-flock - http://bugs.debian.org/543731 Allow for flock returning EAGAIN instead of EWOULDBLOCK on linux/parisc DEBPKG:fixes/archive-tar-instance-error - http://bugs.debian.org/539355 [rt.cpan.org #48879] Separate Archive::Tar instance error strings from each other DEBPKG:fixes/positive-gpos - http://bugs.debian.org/545234 [perl #69056] [c584a96] Fix \\G crash on first match DEBPKG:debian/devel-ppport-ia64-optim - http://bugs.debian.org/548943 Work around an ICE on ia64 DEBPKG:debian/dynaloader-config - http://bugs.debian.org/549170 Make DynaLoader work without Config_heavy.pl again DEBPKG:fixes/trie-logic-match - http://bugs.debian.org/552291 [perl #69973] [0abd0d7] Fix a DoS in Unicode processing [CVE-2009-3626] DEBPKG:fixes/hppa-thread-eagain - http://bugs.debian.org/554218 make the threads-shared test suite more robust, fixing failures on hppa DEBPKG:fixes/crash-on-undefined-destroy - http://bugs.debian.org/564074 [perl #71952] [1f15e67] Fix a NULL pointer dereference when looking for a DESTROY method DEBPKG:patchlevel - http://bugs.debian.org/567489 List packaged patches for 5.10.1-11 in patchlevel.h --- @INC for perl 5.10.1: /home/pepe/root/perl/lib/perl/5.10.1 /home/pepe/root/perl/share/perl/5.10.1 /home/pepe/root/perl/lib/perl/5.10.1 /home/pepe/root/perl/lib/perl /home/pepe/root/perl/lib/perl5/x86_64-linux-gnu-thread-multi /home/pepe/root/perl/lib/perl5 /home/pepe/root/perl/share/perl/5.10.1 /home/pepe/root/perl/share/perl /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl . --- Environment for perl 5.10.1: HOME=/home/pepe LANG=en_US.UTF-8 LANGUAGE=en_US:en LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=/home/pepe/.bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games PERL5LIB=/home/pepe/root/perl/lib/perl/5.10.1:/home/pepe/root/perl/share/perl/5.10.1:/home/pepe/root/perl/lib/perl:/home/pepe/root/perl/lib/perl5:/home/pepe/root/perl/share/perl PERL_BADLANG (unset) SHELL=/bin/bash
Subject: Re: [perl #74554] Hash keys are not always parsed as strings if the arrow is omitted
Date: Thu, 22 Apr 2010 11:57:22 +0200
To: perl5-porters [...] perl.org
From: Abigail <abigail [...] abigail.be>
Download (untitled) / with headers
text/plain 1.1k
On Wed, Apr 21, 2010 at 08:26:08AM -0700, Christoph Bussenius wrote: Show quoted text
> # New Ticket Created by Christoph Bussenius > # Please include the string: [perl #74554] > # in the subject line of all future correspondence about this issue. > # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=74554 > > > > > This is a bug report for perl from pepe@cpan.org, > generated with the help of perlbug 1.39 running under perl 5.10.1. > > > ----------------------------------------------------------------- > > Hi, > > $ perl -lwe 'my $foo = sub { return {xyz => 42}; }; print $foo->()->{xyz}' > 42 > > $ perl -lwe 'my $foo = sub { return {xyz => 42}; }; print $foo->(){xyz}' > Unquoted string "xyz" may clash with future reserved word at -e line 1. > 42 > > $ perl -lwe 'my $foo = sub { return {length => 42}; }; print $foo->()->{length}' > 42 > > $ perl -lwe 'my $foo = sub { return {length => 42}; }; print $foo->(){length}' > Use of uninitialized value $_ in length at -e line 1. > Use of uninitialized value in print at -e line 1. > [empty output line] >
This is a duplicate of #8045, which has been open since 2001. Abigail
Subject: Bareword hash key rejected when hash is a subroutine result and -> omitted
Date: Wed, 12 Jun 2013 17:49:34 +0100
To: perlbug [...] perl.org
From: Rob Dixon <rob.dixon [...] gmx.com>
Download (untitled) / with headers
text/plain 8.3k
This is a bug report for perl from rob.dixon@gmx.com, generated with the help of perlbug 1.39 running under perl 5.16.2. use strict; use warnings; use 5.016; my $hashsub = sub { { key => 'val' } }; # These work fine print $hashsub->()->{key}, "\n"; print $hashsub->(){'key'}, "\n"; # But this throws `Bareword "key" not allowed while "strict subs" in use` print $hashsub->(){key}, "\n"; --- Flags: category=core severity=medium --- Site configuration information for perl 5.16.2: Configured by strawberry-perl at Fri Nov 2 00:34:53 2012. Summary of my perl5 (revision 5 version 16 subversion 2) configuration: Platform: osname=MSWin32, osvers=4.0, archname=MSWin32-x86-multi-thread uname='Win32 strawberry-perl 5.16.2.1 #1 Fri Nov 2 00:33:54 2012 i386' config_args='undef' hint=recommended, useposix=true, d_sigaction=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='gcc', ccflags =' -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields', optimize='-s -O2', cppflags='-DWIN32' ccversion='', gccversion='4.6.3', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='long long', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='g++', ldflags ='-s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib"' libpth=C:\strawberry\c\lib C:\strawberry\c\i686-w64-mingw32\lib libs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 perllibs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 libc=, so=dll, useshrplib=true, libperl=libperl516.a gnulibc_version='' Dynamic Linking: dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-mdll -s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib"' Locally applied patches: --- @INC for perl 5.16.2: C:/strawberry/perl/site/lib/MSWin32-x86-multi-thread C:/strawberry/perl/site/lib C:/strawberry/perl/vendor/lib C:/strawberry/perl/lib . --- Environment for perl 5.16.2: HOME (unset) LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=C:\Program Files (x86)\ImageMagick-6.8.3-Q16;C:\Program Files\ImageMagick-6.8.3-Q16;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\PC Connectivity Solution\;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\PHP\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\jEdit;C:\usr\local\ppt\bin;C:\Program Files (x86)\GnuWin32\bin;C:\Program Files (x86)\Smart Projects\IsoBuster;C:\Program Files (x86)\Oracle\Berkeley DB 11gR2 5.3.15\bin;C:\Program Files (x86)\Git\cmd;C:\Program Files (x86)\Calibre2\;C:\Program Files (x86)\Bazaar;C:\Program Files (x86)\Lua\5.1;C:\Program Files (x86)\Lua\5.1\clibs;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;C:\Program Files\TortoiseSVN\bin;C:\MediaInfoCLI;C:\Program Files (x86)\MKVToolNix;C:\Program Files\WinRAR;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Co mmon Files\Hackety Hack\0.r1529\..;C:\Program Files (x86)\IDM Computer Solutions\UltraCompare\;C:\ffmpeg\bin;C:\Program Files (x86)\Serviio\lib;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64;C:\SWIG;C:\MinGW\bin;C:\MinGW\MSYS\1.0\bin;C:\Python27;C:\Curl;C:\pkg-config\bin;C:\glib\bin;C:\gettext-runtime\bin;C:\Program Files (x86)\IDM Computer Solutions\UltraEdit\;C:\LuaRocks\2.0;C:\Program Files (x86)\Android\android-sdk\platform-tools;C:\Ruby193\bin;C:\Ruby193.DevKit\bin;C:\Program Files (x86)\Nmap;C:\Program Files (x86)\EaseUS\Todo Backup\bin\x64\ PERL_BADLANG (unset) SHELL (unset) --- Flags: category=core severity=medium --- Site configuration information for perl 5.16.2: Configured by strawberry-perl at Fri Nov 2 00:34:53 2012. Summary of my perl5 (revision 5 version 16 subversion 2) configuration: Platform: osname=MSWin32, osvers=4.0, archname=MSWin32-x86-multi-thread uname='Win32 strawberry-perl 5.16.2.1 #1 Fri Nov 2 00:33:54 2012 i386' config_args='undef' hint=recommended, useposix=true, d_sigaction=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='gcc', ccflags =' -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields', optimize='-s -O2', cppflags='-DWIN32' ccversion='', gccversion='4.6.3', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='long long', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='g++', ldflags ='-s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib"' libpth=C:\strawberry\c\lib C:\strawberry\c\i686-w64-mingw32\lib libs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 perllibs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 libc=, so=dll, useshrplib=true, libperl=libperl516.a gnulibc_version='' Dynamic Linking: dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-mdll -s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib"' Locally applied patches: --- @INC for perl 5.16.2: C:/strawberry/perl/site/lib/MSWin32-x86-multi-thread C:/strawberry/perl/site/lib C:/strawberry/perl/vendor/lib C:/strawberry/perl/lib . --- Environment for perl 5.16.2: HOME (unset) LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=C:\Program Files (x86)\ImageMagick-6.8.3-Q16;C:\Program Files\ImageMagick-6.8.3-Q16;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\PC Connectivity Solution\;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\PHP\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\jEdit;C:\usr\local\ppt\bin;C:\Program Files (x86)\GnuWin32\bin;C:\Program Files (x86)\Smart Projects\IsoBuster;C:\Program Files (x86)\Oracle\Berkeley DB 11gR2 5.3.15\bin;C:\Program Files (x86)\Git\cmd;C:\Program Files (x86)\Calibre2\;C:\Program Files (x86)\Bazaar;C:\Program Files (x86)\Lua\5.1;C:\Program Files (x86)\Lua\5.1\clibs;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;C:\Program Files\TortoiseSVN\bin;C:\MediaInfoCLI;C:\Program Files (x86)\MKVToolNix;C:\Program Files\WinRAR;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Co mmon Files\Hackety Hack\0.r1529\..;C:\Program Files (x86)\IDM Computer Solutions\UltraCompare\;C:\ffmpeg\bin;C:\Program Files (x86)\Serviio\lib;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64;C:\SWIG;C:\MinGW\bin;C:\MinGW\MSYS\1.0\bin;C:\Python27;C:\Curl;C:\pkg-config\bin;C:\glib\bin;C:\gettext-runtime\bin;C:\Program Files (x86)\IDM Computer Solutions\UltraEdit\;C:\LuaRocks\2.0;C:\Program Files (x86)\Android\android-sdk\platform-tools;C:\Ruby193\bin;C:\Ruby193.DevKit\bin;C:\Program Files (x86)\Nmap;C:\Program Files (x86)\EaseUS\Todo Backup\bin\x64\;C:\Program Files (x86)\TextPad 6 PERL_BADLANG (unset) SHELL (unset)
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 9.2k
On Wed Jun 12 09:49:51 2013, rob.dixon@gmx.com wrote: Show quoted text
> > This is a bug report for perl from rob.dixon@gmx.com, > generated with the help of perlbug 1.39 running under perl 5.16.2. > > use strict; > use warnings; > use 5.016; >
Problem confirmed, but it should be noted that 'use 5.016;' can be commented out without preventing the problem from manifesting. Show quoted text
> my $hashsub = sub { > { key => 'val' } > }; > > # These work fine > > print $hashsub->()->{key}, "\n"; > print $hashsub->(){'key'}, "\n"; > > # But this throws `Bareword "key" not allowed while "strict subs" in > use` > > print $hashsub->(){key}, "\n"; > > > --- > Flags: > category=core > severity=medium > --- > Site configuration information for perl 5.16.2: > > Configured by strawberry-perl at Fri Nov 2 00:34:53 2012. > > Summary of my perl5 (revision 5 version 16 subversion 2) > configuration: > Platform: > osname=MSWin32, osvers=4.0, archname=MSWin32-x86-multi-thread > uname='Win32 strawberry-perl 5.16.2.1 #1 Fri Nov 2 00:33:54 2012 > i386' > config_args='undef' > hint=recommended, useposix=true, d_sigaction=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='gcc', ccflags =' -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS > -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing > -mms-bitfields', > optimize='-s -O2', > cppflags='-DWIN32' > ccversion='', gccversion='4.6.3', gccosandvers='' > intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 > d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=12 > ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='long > long', lseeksize=8 > alignbytes=8, prototype=define > Linker and Libraries: > ld='g++', ldflags ='-s -L"C:\strawberry\perl\lib\CORE" > -L"C:\strawberry\c\lib"' > libpth=C:\strawberry\c\lib C:\strawberry\c\i686-w64-mingw32\lib > libs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 > -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 > -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 > perllibs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool > -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 > -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 > -lcomctl32 > libc=, so=dll, useshrplib=true, libperl=libperl516.a > gnulibc_version='' > Dynamic Linking: > dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' > cccdlflags=' ', lddlflags='-mdll -s > -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib"' > > Locally applied patches: > > --- > @INC for perl 5.16.2: > C:/strawberry/perl/site/lib/MSWin32-x86-multi-thread > C:/strawberry/perl/site/lib > C:/strawberry/perl/vendor/lib > C:/strawberry/perl/lib > . > > --- > Environment for perl 5.16.2: > HOME (unset) > LANG (unset) > LANGUAGE (unset) > LD_LIBRARY_PATH (unset) > LOGDIR (unset) > PATH=C:\Program Files (x86)\ImageMagick-6.8.3-Q16;C:\Program > Files\ImageMagick-6.8.3-Q16;C:\Program Files (x86)\NVIDIA > Corporation\PhysX\Common;C:\Program Files (x86)\PC Connectivity > Solution\;C:\Program Files\Common Files\Microsoft Shared\Windows > Live;C:\Program Files >
(x86)\PHP\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Show quoted text
> Files\jEdit;C:\usr\local\ppt\bin;C:\Program Files > (x86)\GnuWin32\bin;C:\Program Files (x86)\Smart > Projects\IsoBuster;C:\Program Files (x86)\Oracle\Berkeley DB 11gR2 > 5.3.15\bin;C:\Program Files (x86)\Git\cmd;C:\Program Files > (x86)\Calibre2\;C:\Program Files (x86)\Bazaar;C:\Program Files > (x86)\Lua\5.1;C:\Program Files >
(x86)\Lua\5.1\clibs;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;C:\Program Show quoted text
> Files\TortoiseSVN\bin;C:\MediaInfoCLI;C:\Program Files > (x86)\MKVToolNix;C:\Program Files\WinRAR;C:\Program Files\Common > Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Co > mmon Files\Hackety Hack\0.r1529\..;C:\Program Files (x86)\IDM Computer > Solutions\UltraCompare\;C:\ffmpeg\bin;C:\Program Files > (x86)\Serviio\lib;C:\Program Files (x86)\Microsoft Visual Studio > 10.0\VC\bin\x86_amd64;C:\Program Files (x86)\Microsoft Visual > Studio >
10.0\VC\bin\amd64;C:\SWIG;C:\MinGW\bin;C:\MinGW\MSYS\1.0\bin;C:\Python27;C:\Curl;C:\pkg- Show quoted text
> config\bin;C:\glib\bin;C:\gettext-runtime\bin;C:\Program Files > (x86)\IDM Computer Solutions\UltraEdit\;C:\LuaRocks\2.0;C:\Program > Files (x86)\Android\android-sdk\platform- > tools;C:\Ruby193\bin;C:\Ruby193.DevKit\bin;C:\Program Files > (x86)\Nmap;C:\Program Files (x86)\EaseUS\Todo Backup\bin\x64\ > PERL_BADLANG (unset) > SHELL (unset) > --- > Flags: > category=core > severity=medium > --- > Site configuration information for perl 5.16.2: > > Configured by strawberry-perl at Fri Nov 2 00:34:53 2012. > > Summary of my perl5 (revision 5 version 16 subversion 2) > configuration: > Platform: > osname=MSWin32, osvers=4.0, archname=MSWin32-x86-multi-thread > uname='Win32 strawberry-perl 5.16.2.1 #1 Fri Nov 2 00:33:54 2012 > i386' > config_args='undef' > hint=recommended, useposix=true, d_sigaction=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='gcc', ccflags =' -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS > -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing > -mms-bitfields', > optimize='-s -O2', > cppflags='-DWIN32' > ccversion='', gccversion='4.6.3', gccosandvers='' > intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 > d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=12 > ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='long > long', lseeksize=8 > alignbytes=8, prototype=define > Linker and Libraries: > ld='g++', ldflags ='-s -L"C:\strawberry\perl\lib\CORE" > -L"C:\strawberry\c\lib"' > libpth=C:\strawberry\c\lib C:\strawberry\c\i686-w64-mingw32\lib > libs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 > -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 > -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 > perllibs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool > -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 > -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 > -lcomctl32 > libc=, so=dll, useshrplib=true, libperl=libperl516.a > gnulibc_version='' > Dynamic Linking: > dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' > cccdlflags=' ', lddlflags='-mdll -s > -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib"' > > Locally applied patches: > > --- > @INC for perl 5.16.2: > C:/strawberry/perl/site/lib/MSWin32-x86-multi-thread > C:/strawberry/perl/site/lib > C:/strawberry/perl/vendor/lib > C:/strawberry/perl/lib > . > > --- > Environment for perl 5.16.2: > HOME (unset) > LANG (unset) > LANGUAGE (unset) > LD_LIBRARY_PATH (unset) > LOGDIR (unset) > PATH=C:\Program Files (x86)\ImageMagick-6.8.3-Q16;C:\Program > Files\ImageMagick-6.8.3-Q16;C:\Program Files (x86)\NVIDIA > Corporation\PhysX\Common;C:\Program Files (x86)\PC Connectivity > Solution\;C:\Program Files\Common Files\Microsoft Shared\Windows > Live;C:\Program Files >
(x86)\PHP\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Show quoted text
> Files\jEdit;C:\usr\local\ppt\bin;C:\Program Files > (x86)\GnuWin32\bin;C:\Program Files (x86)\Smart > Projects\IsoBuster;C:\Program Files (x86)\Oracle\Berkeley DB 11gR2 > 5.3.15\bin;C:\Program Files (x86)\Git\cmd;C:\Program Files > (x86)\Calibre2\;C:\Program Files (x86)\Bazaar;C:\Program Files > (x86)\Lua\5.1;C:\Program Files >
(x86)\Lua\5.1\clibs;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;C:\Program Show quoted text
> Files\TortoiseSVN\bin;C:\MediaInfoCLI;C:\Program Files > (x86)\MKVToolNix;C:\Program Files\WinRAR;C:\Program Files\Common > Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Co > mmon Files\Hackety Hack\0.r1529\..;C:\Program Files (x86)\IDM Computer > Solutions\UltraCompare\;C:\ffmpeg\bin;C:\Program Files > (x86)\Serviio\lib;C:\Program Files (x86)\Microsoft Visual Studio > 10.0\VC\bin\x86_amd64;C:\Program Files (x86)\Microsoft Visual > Studio >
10.0\VC\bin\amd64;C:\SWIG;C:\MinGW\bin;C:\MinGW\MSYS\1.0\bin;C:\Python27;C:\Curl;C:\pkg- Show quoted text
> config\bin;C:\glib\bin;C:\gettext-runtime\bin;C:\Program Files > (x86)\IDM Computer Solutions\UltraEdit\;C:\LuaRocks\2.0;C:\Program > Files (x86)\Android\android-sdk\platform- > tools;C:\Ruby193\bin;C:\Ruby193.DevKit\bin;C:\Program Files > (x86)\Nmap;C:\Program Files (x86)\EaseUS\Todo > Backup\bin\x64\;C:\Program Files (x86)\TextPad 6 > PERL_BADLANG (unset) > SHELL (unset)
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 584b
On Wed Jun 12 09:49:51 2013, rob.dixon@gmx.com wrote: Show quoted text
> > This is a bug report for perl from rob.dixon@gmx.com, > generated with the help of perlbug 1.39 running under perl 5.16.2. > > use strict; > use warnings; > use 5.016; > > my $hashsub = sub { > { key => 'val' } > }; > > # These work fine > > print $hashsub->()->{key}, "\n"; > print $hashsub->(){'key'}, "\n"; > > # But this throws `Bareword "key" not allowed while "strict subs" in > use` > > print $hashsub->(){key}, "\n";
Thank you for the report. BTW, this is a duplicate of #8045. -- Father Chrysostomos
To: perl5-porters [...] perl.org
Date: Tue, 16 Jan 2018 08:08:51 +0000
From: Zefram <zefram [...] fysh.org>
Subject: Re: [perl #8045] Hash keys are not always parsed as strings if the arrow is omitted
Download (untitled) / with headers
text/plain 803b
For this problem to occur, it is not sufficient that the arrow preceding the open brace is omitted. It is also necessary that the preceding subscript be of parenthesised type, as opposed to being in square brackets or braces. The problem is that PL_expect is set incorrectly in the "){" case. In addition to losing bareword autoquoting, this also screws up PL_expect after the close brace, breaking recognition of operators: $ perl -lwe '$a = sub { +{a=>5} }; print $a->(){"a"} - 1' syntax error at -e line 1, near "} -" Execution of -e aborted due to compilation errors. This dates right back to the introduction of arrow-omitted syntax in commit fad39ff13c300fe483c6155ea2883280e12fc89c, which naturally added no tests. I've fixed it in commit 097ff42c3bba30230d3512b3de153c75cd2e43c9. -zefram
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 161b
I have confirmed that the posters' examples now work as intended. Resolving ticket pending release. Thank you very much. -- James E Keenan (jkeenan@cpan.org)


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org