Skip Menu |
Report information
Id: 121638
Status: resolved
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: the.rob.dixon [at] gmail.com
Cc:
AdminCc:

Operating System: (no value)
PatchStatus: (no value)
Severity: low
Type: unknown
Perl Version: (no value)
Fixed In: (no value)



From: Rob Dixon <the.rob.dixon [...] gmail.com>
Subject: 'Global symbol "$identifier" requires explicit package' error message
To: perlbug [...] perl.org
Date: Fri, 11 Apr 2014 16:30:10 +0100
Download (untitled) / with headers
text/plain 5.3k
This is a bug report for perl from the.rob.dixon@gmail.com, generated with the help of perlbug 1.39 running under perl 5.16.2. ----------------------------------------------------------------- I believe it is high time that the error Global symbol "$identifier" requires explicit package be changed to something more appropriate. I assume it dates back to perl 4, as these days it is extremely rare that the problem is really a missing package name, and vastly more likely that the variable simply hasn't been declared. Worst of all it confounds Perl beginners, who are the most likely audience to be forgetting to declare a variable, as packages and fully-qualified identifiers are mid-level Perl. I suggest something more like the simple Variable "$identifier" has not been declared is superior. I don't think there is any need at all to mention the fact that the problem could also be fixed by fully-qualifying the identifier, as it is the poorest solution of all, and those that want to access a variable from a different package but don't know how to do it wouldn't really be helped much by the current message. ----------------------------------------------------------------- --- Flags: category=core severity=low --- 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)\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 (x86)\Subversion\bin;C:\Program Files (x86)\Common Files\Ulead Systems\MPEG;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files\Microsoft Network Monitor 3\;C:\Program Files\Calibre2\;C:\Program Files (x86)\MySQL\MySQL Utilities 1.3.4\;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;C:\Program Files\WinRAR;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common 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:\MobiPerl PERL_BADLANG (unset) SHELL (unset)
RT-Send-CC: perl5-porters [...] perl.org
This does not strike me as a bad idea. -- rjbs
Date: Tue, 15 Apr 2014 03:44:42 +0100
To: perl5-porters [...] perl.org
Subject: Re: [perl #121638] 'Global symbol "$identifier" requires explicit package' error message
From: Rob Dixon <rob.dixon [...] gmx.com>
Download (untitled) / with headers
text/plain 661b
On 14/04/2014 15:36, Ricardo SIGNES via RT wrote: Show quoted text
> This does not strike me as a bad idea. >
As always with Perl, I think the biggest problem will be with backward-compatability. In this case with documentation. Google is now the primary route to an analysis of any error message, and if a new, better message is written to describe the same problem then it will confuse people. Of course, that is not to say that irrelevant messages should be kept in circulation just to satisfy the majority, but it does need some thought and discussion. --- This email is free from viruses and malware because avast! Antivirus protection is active. http://www.avast.com
From: Smylers <Smylers [...] stripey.com>
Date: Tue, 15 Apr 2014 10:12:18 +0100
To: perl5-porters [...] perl.org
Subject: Re: [perl #121638] 'Global symbol "$identifier" requires explicit package' error message
Download (untitled) / with headers
text/plain 1.2k
Rob Dixon writes: Show quoted text
> On 14/04/2014 15:36, Ricardo SIGNES via RT wrote: >
> > This does not strike me as a bad idea.
I think it's a good idea. When teaching people Perl, I've found that message to be one of the things that makes the least sense to the learners. The current wording basically reads the same as “Error: -41”, in that it's merely an opaque identifier used to look up the actual problem (by Google, or by asking the person trying to teach you Perl). Show quoted text
> As always with Perl, I think the biggest problem will be with > backward-compatability. In this case with documentation. > > Google is now the primary route to an analysis of any error message, > and if a new, better message is written to describe the same problem > then it will confuse people.
Why? For somebody running an old version of Perl, the current Google hits for that message will remain. For somebody running a new version with a changed error message, there presumably currently isn't any useful information for the new wording, but that will end up getting written. The perldiag entry for the new wording could end with a note saying a different message used to be used. And if the message achieves its aim in being better, fewer people will need to Google it anyway. Smylers -- http://twitter.com/Smylers2
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 588b
If you're fixing old error messages, can you fix a few others too? 1. Remove 'Unquoted string "%s" may clash with future reserved word' ? These days, if perl5porters add a reserved word, it's protected by 'use feature' so it can't clash with a bareword in old code. 2. Improve 'Variable "%s" is not imported' which you get when you use the wrong slot of an existing glob, such as in 'use strict; our $x = [3,1,4]; my $n = $x[0];' ? The error has nothing to do with importing anything. Even the perldiags entry is confusing, because it keeps talking about importing from a module.
To: perl5-porters [...] perl.org
Date: Tue, 15 Apr 2014 13:41:47 +0200
Subject: Re: [perl #121638] 'Global symbol "$identifier" requires explicit package' error message
CC: perlbug-followup [...] perl.org
From: Aristotle Pagaltzis <pagaltzis [...] gmx.de>
Download (untitled) / with headers
text/plain 1.9k
* Ricardo SIGNES via RT <perlbug-followup@perl.org> [2014-04-14 16:40]: Show quoted text
> This does not strike me as a bad idea.
I think it is in fact an excellent idea. Gabor has mentioned this error message to me as the number 1 hurdle for beginners, and the top reason that everyone tends to write 1997-style Perl at first if left to their own devices: they forget to declare a variable, get an incomprehensible error message (which even if they understood it, just tells them how to treat the variable as a global anyhow), and if they take out the line with `use strict` the code “works”. For someone just trying to get a few lines of code to work, working outside of some formal learning context, guess what that teaches them. Gabor brought this up before, but the proposal went nowhere. :-( http://www.nntp.perl.org/group/perl.perl5.porters/;msgid=d8a74af10709020112o77419172q4cc2f2ff66dca385@mail.gmail.com * Rob Dixon <rob.dixon@gmx.com> [2014-04-15 04:45]: Show quoted text
> As always with Perl, I think the biggest problem will be with > backward-compatability. In this case with documentation.
I agree that backcompat will be a problem, but I don’t think Google is the reason. I have the vague feeling that there must be a lot of code out there that’s matching on the text of this particular message. But I can imagine myself being surprised at how little there is, too. This is probably a case where there must be a full-CPAN smoke against the branch with the change, so there is some *data* on how much will break before any call can be made on how to proceed. If this *can* go into 5.22, that would be *excellent*, but I won’t be expecting that… When Gabor brought this up, the perma-topic of having more structured error messages (error numbers, dual-valued $@, an exception hierarchy, *something*) inevitably came up. But it’s been a long time and we have gotten no closer to that in the meantime… Regards, -- Aristotle Pagaltzis // <http://plasmasturm.org/>
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 708b
On Tue Apr 15 02:38:00 2014, b_jonas wrote: Show quoted text
> If you're fixing old error messages, can you fix a few others too? > > 1. Remove 'Unquoted string "%s" may clash with future reserved word' ? > These days, if perl5porters add a reserved word, it's protected by > 'use feature' so it can't clash with a bareword in old code. > > 2. Improve 'Variable "%s" is not imported' which you get when you use > the wrong slot of an existing glob, such as in 'use strict; our $x = > [3,1,4]; my $n = $x[0];' ? The error has nothing to do with importing > anything. Even the perldiags entry is confusing, because it keeps > talking about importing from a module.
Could someone suggest better wording? -- Karl Williamson
CC: perl5 porters <perl5-porters [...] perl.org>
Subject: Re: [perl #121638] 'Global symbol "$identifier" requires explicit package' error message
From: Eric Brine <ikegami [...] adaelis.com>
Date: Tue, 29 Jul 2014 22:14:44 -0400
To: perlbug-followup <perlbug-followup [...] perl.org>
Download (untitled) / with headers
text/plain 544b
On Tue, Jul 29, 2014 at 1:26 PM, Karl Williamson via RT <perlbug-followup@perl.org> wrote:
Show quoted text
> 2. Improve 'Variable "%s" is not imported' which you get when you use
> the wrong slot of an existing glob, such as in 'use strict; our $x =
> [3,1,4]; my $n = $x[0];' ?  The error has nothing to do with importing
> anything.  Even the perldiags entry is confusing, because it keeps
> talking about importing from a module.

Could someone suggest better wording?

Easy! Global symbol "@x" requires explicit package name at -e line 1.

From: Eric Brine <ikegami [...] adaelis.com>
To: perlbug-followup <perlbug-followup [...] perl.org>
Date: Tue, 29 Jul 2014 22:16:27 -0400
CC: perl5 porters <perl5-porters [...] perl.org>
Subject: Re: [perl #121638] 'Global symbol "$identifier" requires explicit package' error message
Download (untitled) / with headers
text/plain 724b
On Tue, Jul 29, 2014 at 10:14 PM, Eric Brine <ikegami@adaelis.com> wrote:
Show quoted text
On Tue, Jul 29, 2014 at 1:26 PM, Karl Williamson via RT <perlbug-followup@perl.org> wrote:
> 2. Improve 'Variable "%s" is not imported' which you get when you use
> the wrong slot of an existing glob, such as in 'use strict; our $x =
> [3,1,4]; my $n = $x[0];' ?  The error has nothing to do with importing
> anything.  Even the perldiags entry is confusing, because it keeps
> talking about importing from a module.

Could someone suggest better wording?

Easy! Global symbol "@x" requires explicit package name at -e line 1.

Well, that is to say, the same as the one received using 'use strict; my $n = $x[0];'

 

RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 732b
I tried a CPAN smoke of changing this message. The high level results are attached as the first file. If I look at the failures, the ones which have the changed wording in their test output amount to 130 distinct distributions. The second attachment is an example of an expected failure there. But some of the failures are more like the third attachment. And looking at the smoke output, a lot of things failed because of failed prerequisites. Steffen doesn't understand it. The code is using cpanplus to compile things. And there is that the output says 2800 distributions are missing from the output; also something I and Steffen don't understand. So I'm not sure how to proceed. What do you think? -- Karl Williamson
Subject: fail.mocked-0.09.x86_64-linux-thread-multi.3.13.0-32-generic.1407235310.16766.rpt.txt
From: khw@example.com (Karl Williamson) X-Test-Reporter-Distfile: LUKEC/mocked-0.09.tar.gz X-Test-Reporter-Perl: v5.21.3 Subject: FAIL mocked-0.09 x86_64-linux-thread-multi 3.13.0-32-generic Report: This distribution has been tested as part of the CPAN Testers project, supporting the Perl programming language. See http://wiki.cpantesters.org/ for more information or email questions to cpan-testers-discuss@perl.org -- Dear LUKEC, This is a computer-generated error report created automatically by CPANPLUS, version 0.9152. Testers personal comments may appear at the end of this report. Thank you for uploading your work to CPAN. However, it appears that there were some problems testing your distribution. TEST RESULTS: Below is the error stack from stage 'make test': /home/khw/perl/cpansmoke_testperls/error_msg/perl-error_msg/bin/perl "-Iinc" /var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/mocked-0.09/Makefile.PL --config= --installdeps=Test::Exception,0 PERL_DL_NONLAZY=1 /home/khw/perl/cpansmoke_testperls/error_msg/perl-error_msg/bin/perl "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/mocked.t t/unmocked.t Subroutine module_filename redefined at lib/Foo/PreLoaded.pm line 10. t/mocked.t .... ok t/unmocked.t .. Dubious, test returned 2 (wstat 512, 0x200) No subtests run Test Summary Report ------------------- t/unmocked.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output Files=2, Tests=14, 0 wallclock secs ( 0.03 usr 0.00 sys + 0.07 cusr 0.01 csys = 0.11 CPU) Result: FAIL Can't locate URI.pm in @INC (you may need to install the URI module) (@INC contains: lib /var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/mocked-0.09/inc /var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/mocked-0.09/blib/lib /var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/mocked-0.09/blib/arch /var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/Sub-Uplevel-0.24/blib/lib /var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/Sub-Uplevel-0.24/blib/arch /var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/Test-Exception-0.32/blib/lib /var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/Test-Exception-0.32/blib/arch /home/khw/perl/cpansmoke_testperls/error_msg/perl-error_msg/lib/site_perl/5.21.3/x86_64-linux-thread-multi /home/khw/perl/cpansmoke_testperls/error_msg/perl-error_msg/lib/site_perl/5.21.3 /home/khw/perl/cpansmoke_testperls/error_msg/perl-error_msg/lib/5.21.3/x86_64-linux-thread-multi /home/khw/perl/cpansmoke_testperls/error_msg/perl-error_msg/lib/5.21.3 .) at (eval 6) line 2. BEGIN failed--compilation aborted at t/lib/Foo/UsingUnmocked.pm line 14. Compilation failed in require at (eval 5) line 2. BEGIN failed--compilation aborted at t/unmocked.t line 10. # Looks like your test exited with 2 before it could output anything. Failed 1/2 test programs. 0/14 subtests failed. make: *** [test_dynamic] Error 2 MISSING PREREQUISITES: It was observed that the test suite seem to fail without these modules: URI As such, adding the prerequisite module(s) to 'PREREQ_PM' in your Makefile.PL should solve this problem. For example: WriteMakefile( AUTHOR => 'LUKEC (cpanplus-info@lists.sf.net)', ... # other information PREREQ_PM => { 'URI' => '0', # or a minimum working version } ); Thanks! :-) PREREQUISITES: Here is a list of prerequisites you specified and versions we managed to load: Module Name Have Want ExtUtils::MakeMaker 6.98 0 Test::Exception 0.32 0 Test::More 1.001003 0.42 Perl module toolchain versions installed: Module Name Have CPANPLUS 0.9152 CPANPLUS::Dist::Build 0.78 Cwd 3.49 ExtUtils::CBuilder 0.280216 ExtUtils::Command 1.18 ExtUtils::Install 1.68 ExtUtils::MakeMaker 6.98 ExtUtils::Manifest 1.64 ExtUtils::ParseXS 3.25 File::Spec 3.49 Module::Build 0.4206 Pod::Parser 1.62 Pod::Simple 3.28 Test::Harness 3.32 Test::More 1.001003 version 0.9908 ******************************** NOTE ******************************** The comments above are created mechanically, possibly without manual checking by the sender. As there are many people performing automatic tests on each upload to CPAN, it is likely that you will receive identical messages about the same problem. If you believe that the message is mistaken, please reply to the first one with correction and/or additional informations, and do not take it personally. We appreciate your patience. :) ********************************************************************** Additional comments: This report was machine-generated by CPANPLUS::Dist::YACSmoke 0.90. ------------------------------ ENVIRONMENT AND OTHER CONTEXT ------------------------------ Environment variables: AUTOMATED_TESTING = 1 LANG = en_US.UTF-8 NONINTERACTIVE_TESTING = 1 PATH = /home/khw/bin:/home/khw/perl5/perlbrew/bin:/home/khw/print/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/usr/games:/usr/local/games:/home/khw/iands/www:/home/khw/cxoffice/bin PERL5LIB = :/var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/Sub-Uplevel-0.24/blib/lib:/var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/Sub-Uplevel-0.24/blib/arch:/var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/Test-Exception-0.32/blib/lib:/var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/Test-Exception-0.32/blib/arch:/var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/mocked-0.09/blib/lib:/var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/mocked-0.09/blib/arch PERL5OPT = PERL5_CPANPLUS_BASE = /var/tmp/qoNfVUnK59 PERL5_CPANPLUS_IS_RUNNING = 16766 PERL5_CPANPLUS_IS_VERSION = 0.9152 PERL5_YACSMOKE_BASE = /var/tmp/qoNfVUnK59 PERL_EXTUTILS_AUTOINSTALL = --defaultdeps PERL_MM_USE_DEFAULT = 1 PERL_POD_PEDANTIC = 1 SHELL = /bin/ksh TERM = xterm Perl special variables (and OS-specific diagnostics, for MSWin32): Perl: $^X = /home/khw/perl/cpansmoke_testperls/error_msg/perl-error_msg/bin/perl UID: $< = 1000 EUID: $> = 1000 GID: $( = 1000 4 24 27 30 46 112 124 1000 EGID: $) = 1000 4 24 27 30 46 112 124 1000 ------------------------------- -- Summary of my perl5 (revision 5 version 21 subversion 3) configuration: Commit id: 9cb534b0976ca3e9641369f65ad8153e73b586d5 Platform: osname=linux, osvers=3.13.0-32-generic, archname=x86_64-linux-thread-multi uname='linux khw 3.13.0-32-generic #57-ubuntu smp tue jul 15 03:51:08 utc 2014 x86_64 x86_64 x86_64 gnulinux ' config_args='-des -Dusedevel -Uversiononly -Dusethreads -Dman1dir=none -Dman3dir=none -Dprefix=/home/khw/perl/cpansmoke_testperls/error_msg/perl-error_msg' hint=recommended, useposix=true, d_sigaction=define useithreads=define, usemultiplicity=define use64bitint=define, use64bitall=define, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include' ccversion='', gccversion='4.8.2', 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 /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib libs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc libc=libc-2.19.so, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='2.19' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector' Characteristics of this binary (from libperl): Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS PERL_DONT_CREATE_GVSV PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV PERL_USE_DEVEL USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LOCALE_TIME USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API Built under linux Compiled at Aug 4 2014 12:13:34 %ENV: PERL5LIB=":/var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/Sub-Uplevel-0.24/blib/lib:/var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/Sub-Uplevel-0.24/blib/arch:/var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/Test-Exception-0.32/blib/lib:/var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/Test-Exception-0.32/blib/arch:/var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/mocked-0.09/blib/lib:/var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/mocked-0.09/blib/arch" PERL5OPT="" PERL5_CPANPLUS_BASE="/var/tmp/qoNfVUnK59" PERL5_CPANPLUS_IS_RUNNING="16766" PERL5_CPANPLUS_IS_VERSION="0.9152" PERL5_YACSMOKE_BASE="/var/tmp/qoNfVUnK59" PERL_EXTUTILS_AUTOINSTALL="--defaultdeps" PERL_MM_USE_DEFAULT="1" PERL_POD_PEDANTIC="1" @INC: /var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/Sub-Uplevel-0.24/blib/lib /var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/Sub-Uplevel-0.24/blib/arch /var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/Test-Exception-0.32/blib/lib /var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/Test-Exception-0.32/blib/arch /var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/mocked-0.09/blib/lib /var/tmp/qoNfVUnK59/.cpanplus/5.21.3/build/mocked-0.09/blib/arch /home/khw/perl/cpansmoke_testperls/error_msg/perl-error_msg/lib/site_perl/5.21.3/x86_64-linux-thread-multi /home/khw/perl/cpansmoke_testperls/error_msg/perl-error_msg/lib/site_perl/5.21.3 /home/khw/perl/cpansmoke_testperls/error_msg/perl-error_msg/lib/5.21.3/x86_64-linux-thread-multi /home/khw/perl/cpansmoke_testperls/error_msg/perl-error_msg/lib/5.21.3 .
Subject: fail.uni-perl-0.92.x86_64-linux-thread-multi.3.13.0-32-generic.1407342293.14115.rpt.txt

Message body is not shown because it is too large.

Subject: index.html
Download index.html
text/html 70.9k

Message body is not shown because it is too large.

RT-Send-CC: perl5-porters [...] perl.org
It appears that RT puts the attachments in the reverse order of what I said in the previous post
Subject: Re: [perl #121638] 'Global symbol "$identifier" requires explicit package' error message
Date: Mon, 15 Sep 2014 18:54:08 -0400
From: Ricardo Signes <perl.p5p [...] rjbs.manxome.org>
CC: ;, perl5-porters [...] perl.org
To: Karl Williamson via RT <perlbug-followup [...] perl.org>
* Karl Williamson via RT <perlbug-followup@perl.org> [2014-08-22T16:10:18] Show quoted text
> I tried a CPAN smoke of changing this message. The high level results are > attached as the first file. > > If I look at the failures, the ones which have the changed wording in their > test output amount to 130 distinct distributions. The second attachment is > an example of an expected failure there.
Sigh. I'm flashing back to when we added a period to Carp's output. I would like to improve this error message, but I think that if we do it by only updating the string, we're going to suffer quite a bit. This is something that could be governed by a pragma, at least until such time as there is a better way to identify internal errors. Although I am not thrilled at a proliferation of pragmata for things such as this, I think it may be better in the long run. The down side is that now new users will only get the helpful error message if they have done 'use v5.24', or the like, which is a pretty hefty down side. Anybody have a great idea? -- rjbs
Download signature.asc
application/pgp-signature 473b

Message body not shown because it is not plain text.

RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 1.6k
On Mon Sep 15 15:54:34 2014, perl.p5p@rjbs.manxome.org wrote: Show quoted text
> * Karl Williamson via RT <perlbug-followup@perl.org> [2014-08- > 22T16:10:18]
> > I tried a CPAN smoke of changing this message. The high level > > results are > > attached as the first file. > > > > If I look at the failures, the ones which have the changed wording in > > their > > test output amount to 130 distinct distributions. The second > > attachment is > > an example of an expected failure there.
> > Sigh. I'm flashing back to when we added a period to Carp's output. > > I would like to improve this error message, but I think that if we do > it by > only updating the string, we're going to suffer quite a bit. > > This is something that could be governed by a pragma, at least until > such time > as there is a better way to identify internal errors. Although I am > not > thrilled at a proliferation of pragmata for things such as this, I > think it may > be better in the long run. > > The down side is that now new users will only get the helpful error > message if > they have done 'use v5.24', or the like, which is a pretty hefty down > side. > > Anybody have a great idea?
I think I have an easy way out for now. Do what we did for ‘Can’t locate Rheubarbarum/Rheubarbarorum.pm in @INC’. Simply add ‘(Did you forget to declare "my $rhubarb"?)’. As for pragmata changing the wording of error messages, no, please let’s not go there. eval { mumbo_jumbo() }; # What’s that in Latin? if ($@ =~ /Old wording/ || $@ =~ /New wording/ # Grrr! Some callbacks have ‘use 5.42’ ) { What we really need are error codes, though.... -- Father Chrysostomos
CC: Perl5 Porteros <perl5-porters [...] perl.org>
Subject: Re: [perl #121638] 'Global symbol "$identifier" requires explicit package' error message
From: demerphq <demerphq [...] gmail.com>
Date: Tue, 16 Sep 2014 23:50:23 +0200
To: Perl RT Bug Tracker <perlbug-followup [...] perl.org>
Download (untitled) / with headers
text/plain 1.9k
On 16 September 2014 22:48, Father Chrysostomos via RT <perlbug-followup@perl.org> wrote:
Show quoted text
On Mon Sep 15 15:54:34 2014, perl.p5p@rjbs.manxome.org wrote:
> * Karl Williamson via RT <perlbug-followup@perl.org> [2014-08-
> 22T16:10:18]
> > I tried a CPAN smoke of changing this message.  The high level
> > results are
> > attached as the first file.
> >
> > If I look at the failures, the ones which have the changed wording in
> > their
> > test output amount to 130 distinct distributions.  The second
> > attachment is
> > an example of an expected failure there.
>
> Sigh.  I'm flashing back to when we added a period to Carp's output.
>
> I would like to improve this error message, but I think that if we do
> it by
> only updating the string, we're going to suffer quite a bit.
>
> This is something that could be governed by a pragma, at least until
> such time
> as there is a better way to identify internal errors.  Although I am
> not
> thrilled at a proliferation of pragmata for things such as this, I
> think it may
> be better in the long run.
>
> The down side is that now new users will only get the helpful error
> message if
> they have done 'use v5.24', or the like, which is a pretty hefty down
> side.
>
> Anybody have a great idea?

I think I have an easy way out for now.  Do what we did for ‘Can’t locate Rheubarbarum/Rheubarbarorum.pm in @INC’.  Simply add ‘(Did you forget to declare "my $rhubarb"?)’.

As for pragmata changing the wording of error messages, no, please let’s not go there.

eval { mumbo_jumbo() }; # What’s that in Latin?
if ($@ =~ /Old wording/
 || $@ =~ /New wording/ # Grrr! Some callbacks have ‘use 5.42’
) {

What we really need are error codes, though....

I have long argued we should do this. It would allow us to localize error messages without making everyones life painful.

If we agreed that this would be nice to have I would work on it.

Yves
Subject: Re: [perl #121638] 'Global symbol "$identifier" requires explicit package' error message
Date: Tue, 16 Sep 2014 18:15:44 -0400
From: Ricardo Signes <perl.p5p [...] rjbs.manxome.org>
CC: Perl RT Bug Tracker <perlbug-followup [...] perl.org>, Perl5 Porteros <perl5-porters [...] perl.org>
To: demerphq <demerphq [...] gmail.com>
Download (untitled) / with headers
text/plain 289b
* demerphq <demerphq@gmail.com> [2014-09-16T17:50:23] Show quoted text
> I have long argued we should do this. It would allow us to localize error > messages without making everyones life painful. > > If we agreed that this would be nice to have I would work on it.
This would be nice to have. -- rjbs
Download signature.asc
application/pgp-signature 473b

Message body not shown because it is not plain text.

To: Ricardo Signes <perl.p5p [...] rjbs.manxome.org>
Date: Wed, 17 Sep 2014 00:22:24 +0200
From: demerphq <demerphq [...] gmail.com>
Subject: Re: [perl #121638] 'Global symbol "$identifier" requires explicit package' error message
CC: Perl RT Bug Tracker <perlbug-followup [...] perl.org>, Perl5 Porteros <perl5-porters [...] perl.org>
Download (untitled) / with headers
text/plain 559b
On 17 September 2014 00:15, Ricardo Signes <perl.p5p@rjbs.manxome.org> wrote:
Show quoted text
* demerphq <demerphq@gmail.com> [2014-09-16T17:50:23]
> I have long argued we should do this. It would allow us to localize error
> messages without making everyones life painful.
>
> If we agreed that this would be nice to have I would work on it.

This would be nice to have.

Cool. Then I will be happy to lend a hand to make it happen. If someone starts on this before I do please let me know!

Cheers,
yves

--
perl -Mre=debug -e "/just|another|perl|hacker/"
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 997b
On Tue Sep 16 15:22:46 2014, demerphq wrote: Show quoted text
> On 17 September 2014 00:15, Ricardo Signes <perl.p5p@rjbs.manxome.org> > wrote: >
> > * demerphq <demerphq@gmail.com> [2014-09-16T17:50:23]
> > > I have long argued we should do this. It would allow us to localize > > > error > > > messages without making everyones life painful. > > > > > > If we agreed that this would be nice to have I would work on it.
I think everyone agrees on that, but not on how it should be done. Show quoted text
> > > > This would be nice to have.
But what do you think of my stopgap measure? (Global symbol "$custard" requires explicit package name (did you forget to declare "my $custard"?) at -e line 1.) Show quoted text
> Cool. Then I will be happy to lend a hand to make it happen. If > someone > starts on this before I do please let me know!
I already have detailed plans as to how it should be done. I had planned to do it after lvalue references. See ticket #122794. Let’s please move the discussion there. -- Father Chrysostomos
Subject: Re: [perl #121638] 'Global symbol "$identifier" requires explicit package' error message
Date: Tue, 16 Sep 2014 16:34:12 -0700
From: Karen Etheridge <perl [...] froods.org>
To: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 870b
On Mon, Sep 15, 2014 at 06:54:08PM -0400, Ricardo Signes wrote: Show quoted text
> Sigh. I'm flashing back to when we added a period to Carp's output. > > I would like to improve this error message, but I think that if we do it by > only updating the string, we're going to suffer quite a bit. > > This is something that could be governed by a pragma, at least until such time > as there is a better way to identify internal errors. Although I am not > thrilled at a proliferation of pragmata for things such as this, I think it may > be better in the long run.
pragma: ew, please let's not. better way to identify internal errors: yes please! my mental image is something like $! and %! for system errors: an integer code which stringifies (locale-aware) as needed, so programs need only identify the error by its numeric code (and associated constant), not its stringification.
From: demerphq <demerphq [...] gmail.com>
To: Perl RT Bug Tracker <perlbug-followup [...] perl.org>
Date: Wed, 17 Sep 2014 02:14:10 +0200
CC: Perl5 Porteros <perl5-porters [...] perl.org>
Subject: Re: [perl #121638] 'Global symbol "$identifier" requires explicit package' error message
Download (untitled) / with headers
text/plain 1.3k
On 17 September 2014 01:01, Father Chrysostomos via RT <perlbug-followup@perl.org> wrote:
Show quoted text
On Tue Sep 16 15:22:46 2014, demerphq wrote:
> On 17 September 2014 00:15, Ricardo Signes <perl.p5p@rjbs.manxome.org>
> wrote:
>
> > * demerphq <demerphq@gmail.com> [2014-09-16T17:50:23]
> > > I have long argued we should do this. It would allow us to localize
> > > error
> > > messages without making everyones life painful.
> > >
> > > If we agreed that this would be nice to have I would work on it.

I think everyone agrees on that, but not on how it should be done.


Ok, but below you say you have a plan. Which makes you "Stan, the man with the plan". :-)
 
Show quoted text
> >
> > This would be nice to have.

But what do you think of my stopgap measure?  (Global symbol "$custard" requires explicit package name (did you forget to declare "my $custard"?) at -e line 1.)

> Cool. Then I will be happy to lend a hand to make it happen. If
> someone
> starts on this before I do please let me know!

I already have detailed plans as to how it should be done.  I had planned to do it after lvalue references.

See ticket #122794.  Let’s please move the discussion there.

Willdo. Looking forward to reading it and working with you to accomplish it.

Cheers,
Yves

--
perl -Mre=debug -e "/just|another|perl|hacker/"
Subject: Re: [perl #121638] 'Global symbol "$identifier" requires explicit package' error message
CC: perl5-porters [...] perl.org
Date: Thu, 18 Sep 2014 17:52:05 -0600
To: perlbug-followup [...] perl.org, "OtherRecipients of perl Ticket #121638:;" [...] smtp.indra.com
From: Karl Williamson <public [...] khwilliamson.com>
Download (untitled) / with headers
text/plain 238b
On 09/16/2014 05:01 PM, Father Chrysostomos via RT wrote: Show quoted text
> But what do you think of my stopgap measure? (Global symbol "$custard" requires explicit package name (did you forget to declare "my $custard"?) at -e line 1.)
+1 to trial it
Date: Fri, 19 Sep 2014 03:16:17 +0200
To: perl5-porters [...] perl.org
From: Aristotle Pagaltzis <pagaltzis [...] gmx.de>
Subject: Re: [perl #121638] 'Global symbol "$identifier" requires explicit package' error message
Download (untitled) / with headers
text/plain 304b
* Father Chrysostomos via RT <perlbug-followup@perl.org> [2014-09-16 22:50]: Show quoted text
> I think I have an easy way out for now. Do what we did for ‘Can’t > locate Rheubarbarum/Rheubarbarorum.pm in @INC’. Simply add ‘(Did you > forget to declare "my $rhubarb"?)’.
Yes please! This sounds worth a shot.
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 482b
On Thu Sep 18 18:16:49 2014, aristotle wrote: Show quoted text
> * Father Chrysostomos via RT <perlbug-followup@perl.org> [2014-09-16 22:50]:
> > I think I have an easy way out for now. Do what we did for ‘Can’t > > locate Rheubarbarum/Rheubarbarorum.pm in @INC’. Simply add ‘(Did you > > forget to declare "my $rhubarb"?)’.
> > Yes please! This sounds worth a shot.
Added in d8c6310a4f. This ticket is resolved. Let’s see how much of CPAN this breaks. :-) -- Father Chrysostomos
CC: perl5-porters [...] perl.org
Subject: CPAN smokes and [perl #121638] 'Global symbol "$identifier" requires explicit package' error message
From: Karl Williamson <public [...] khwilliamson.com>
Date: Fri, 19 Sep 2014 11:04:05 -0600
To: Steffen Mueller <smueller [...] cpan.org>
Download (untitled) / with headers
text/plain 1.5k
On 09/18/2014 11:13 PM, Father Chrysostomos via RT wrote: Show quoted text
> On Thu Sep 18 18:16:49 2014, aristotle wrote:
>> * Father Chrysostomos via RT <perlbug-followup@perl.org> [2014-09-16 22:50]:
>>> I think I have an easy way out for now. Do what we did for ‘Can’t >>> locate Rheubarbarum/Rheubarbarorum.pm in @INC’. Simply add ‘(Did you >>> forget to declare "my $rhubarb"?)’.
>> >> Yes please! This sounds worth a shot.
> > Added in d8c6310a4f. This ticket is resolved. Let’s see how much of CPAN this breaks. :-) >
While you were off-list earlier this year, we decided to avoid using blead as a CPAN smoker for things we suspect are likely to break it. Andreas makes it look like it's easy to have these smokes, almost like they are entirely automated. But they aren't fully so. Each breakage adds work for him, and we shouldn't take his efforts for granted. His work is a significant contribution to the success of perl 5 development, but he does it so well and mostly behind the scenes that it's easy to forget that it is a significant amount of work, especially when there are breakages. But we need to get CPAN smokes more easy to do. I tried one, on this very issue, and it took my recent, fast PC more than a week to accomplish, and I'm uncertain about the results. It's not an area that I have any expertise in, and so would require too much effort for me to delve into. Dromedary should be available to do cpan smokes, but last I knew it didn't have enough spare disk space. Steffen said that was fixable, but I don't know that it has happened yet.
From: Father Chrysostomos <sprout [...] cpan.org>
To: perl5-porters [...] perl.org
Date: 19 Sep 2014 22:57:54 -0000
Subject: Re: CPAN smokes and [perl #121638] 'Global symbol "$identifier" requires explicit package' error message
Download (untitled) / with headers
text/plain 775b
Karl Williamson wrote: Show quoted text
> On 09/18/2014 11:13 PM, Father Chrysostomos via RT wrote:
> > Added in d8c6310a4f. This ticket is resolved. Let's see how much of CPAN this breaks. :-) > >
> > While you were off-list earlier this year, we decided to avoid using > blead as a CPAN smoker for things we suspect are likely to break it.
I meant that last sentence solely as a joke. Even if this does break CPAN, I think this change should still stay in. Even if I had done a smoke first and found that Function::Parameters, Mouse, Apache::EmbeddedPerl::Lite, triceps, Moose, Parse::Keyword, Dancer, lib-with-preamble, DBIx::VersionedSubs, MooseX::Method::Signatures Acme::use::strict::with::pride, Coat, Config::Vars and Padre are likely to break, I would have applied it anyway.
Date: Fri, 19 Sep 2014 22:38:35 -0700
From: Karen Etheridge <perl [...] froods.org>
Subject: Re: CPAN smokes and [perl #121638] 'Global symbol "$identifier" requires explicit package' error message
To: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 1019b
On Fri, Sep 19, 2014 at 10:57:54PM -0000, Father Chrysostomos wrote: Show quoted text
> Karl Williamson wrote:
> > On 09/18/2014 11:13 PM, Father Chrysostomos via RT wrote:
> > > Added in d8c6310a4f. This ticket is resolved. Let's see how much of CPAN this breaks. :-) > > >
> > > > While you were off-list earlier this year, we decided to avoid using > > blead as a CPAN smoker for things we suspect are likely to break it.
> > I meant that last sentence solely as a joke. Even if this does break > CPAN, I think this change should still stay in. > > Even if I had done a smoke first and found that Function::Parameters, > Mouse, Apache::EmbeddedPerl::Lite, triceps, Moose, > Parse::Keyword, Dancer, lib-with-preamble, DBIx::VersionedSubs, > MooseX::Method::Signatures Acme::use::strict::with::pride, Coat, > Config::Vars and Padre are likely to break, I would have applied > it anyway.
Moose has been fixed in versions 2.1212 and 2.1303-TRIAL. You have my permission to release 5.21.4 now.* * this seems like a fun game. :)
Subject: Re: CPAN smokes and [perl #121638] 'Global symbol "$identifier" requires explicit package' error message
CC: Steffen Mueller <smueller [...] cpan.org>, perl5-porters [...] perl.org
Date: Sat, 20 Sep 2014 13:03:23 +0200
To: Karl Williamson <public [...] khwilliamson.com>
From: Andreas Koenig <andreas.koenig.7os6VVqR [...] franz.ak.mind.de>
Download (untitled) / with headers
text/plain 1.9k
Show quoted text
>>>>> On Fri, 19 Sep 2014 11:04:05 -0600, Karl Williamson <public@khwilliamson.com> said:
Show quoted text
> On 09/18/2014 11:13 PM, Father Chrysostomos via RT wrote:
>> On Thu Sep 18 18:16:49 2014, aristotle wrote:
>>> * Father Chrysostomos via RT <perlbug-followup@perl.org> [2014-09-16 22:50]:
>>>> I think I have an easy way out for now. Do what we did for ‘Can’t >>>> locate Rheubarbarum/Rheubarbarorum.pm in @INC’. Simply add ‘(Did you >>>> forget to declare "my $rhubarb"?)’.
>>> >>> Yes please! This sounds worth a shot.
>> >> Added in d8c6310a4f. This ticket is resolved. Let’s see how much of CPAN this breaks. :-) >>
Show quoted text
> While you were off-list earlier this year, we decided to avoid using > blead as a CPAN smoker for things we suspect are likely to break it.
Show quoted text
> Andreas makes it look like it's easy to have these smokes, almost like > they are entirely automated. But they aren't fully so. Each breakage > adds work for him, and we shouldn't take his efforts for granted. His > work is a significant contribution to the success of perl 5 > development, but he does it so well and mostly behind the scenes that > it's easy to forget that it is a significant amount of work, > especially when there are breakages.
Thank you, Karl, for chiming in! But reality is: at the moment *everything goes* as far as my statistics are concerned. Perl 5.21 is in such a bad shape with regard to smoking that I supposedly catch something from time to time only by pure luck. I haven't given up and we had similar bad phases in previous bleadperl development, so not everything is necessarily lost. FC usually has a sterling record of patching CPAN distros that break due to blead fixes, so I endorse his breakages. I still ask for everybody's best effort to not just try things out on trunk when there are chances to try thing out elsewhere. I also ask for maximum backwards compatibility when possible, it will help to get an acceptable 5.22.0. Thanks for listening, please goto coding:) -- andreas


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