CC: | bug-Socket6 [...] rt.cpan.org |
Subject: | [perl #100962] Socket and Socket6 autoload warnings |
Date: | Sat, 08 Oct 2011 17:42:51 -0700 |
To: | "OtherRecipients of perl Ticket #100962":; |
From: | "Father Chrysostomos via RT" <perlbug-followup [...] perl.org> |
This bug was fixed in the Socket.pm that comes with 5.8.1; perhaps even
earlier.
Socket6 is not part of the Perl core, so I’m forwarding this to the CPAN
queue, as it still has the bug.
On Sat Oct 08 15:31:54 2011, root@grommet.slackware.lan wrote:
Show quoted text
> This is a bug report for perl from root@grommet.slackware.lan,
> generated with the help of perlbug 1.33 running under perl v5.6.1.
>
>
> -----------------------------------------------------------------
> [Please enter your report here]
>
> under certain conditions, constants loaded from Socket and Socket6 do
> not
> behave as expected. Specifically they gobble the contents of @_ and
> cause
> the autoload routine in the respective module to emit a warning that
> is
> inappropriate.
>
> Example from Socket6 -- easily duplicated in Socket
>
> ===================================
> Argument "stuff" isn't numeric in subroutine entry at
> /usr/lib/perl5/site_perl/i386-linux/Socket6.pm line 293 (#1)
> (W numeric) The indicated string was fed as an argument to an
> operator
> that expected a numeric value instead. If you're fortunate the
> message
> will identify which operator was so unfortunate.
>
> AF_INET6 => 10
> ===================================
>
> A test program that generates this follows:
>
> ===================================
> #!/usr/bin/perl
>
> use diagnostics;
> use Socket6 qw(AF_INET6);
> @_ = 'stuff';
> my $af = &AF_INET6;
> print "AF_INET6 => $af\n";
> 1;
> ==================================
>
> module Socket behaves in the same manner.
>
> ===================================
> #!/usr/bin/perl
>
> use diagnostics;
> use Socket;
> @_ = 'stuff';
> my $af = &AF_INET;
> print "AF_INET => $af\n";
> 1;
> ==================================
>
> Exported "symbols" should behave in a consistent manner and
> not generate global warnings that are dependent on the calling
> context.
>
> [Please do not change anything below this line]
> -----------------------------------------------------------------
> ---
> Flags:
> category=library
> severity=medium
> ---
> Site configuration information for perl v5.6.1:
>
> Configured by root at Wed Apr 11 22:55:30 PDT 2001.
>
> Summary of my perl5 (revision 5.0 version 6 subversion 1)
> configuration:
> Platform:
> osname=linux, osvers=2.4.2, archname=i386-linux
> uname='linux grommet 2.4.2 #1 smp sun feb 25 16:33:33 pst 2001
> i686 unknown '
> config_args='-de -Dprefix=/usr -Darchname=i386-linux
> -Dprivlib=/usr/lib/perl5 -Darchlib=/usr/lib/perl5/i386-linux
> -Dsitelib=/usr/lib/perl5/site_perl
> -Dsitearch=/usr/lib/perl5/site_perl/i386-linux'
> hint=recommended, useposix=true, d_sigaction=define
> usethreads=undef use5005threads=undef useithreads=undef
> usemultiplicity=undef
> useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
> use64bitint=undef use64bitall=undef uselongdouble=undef
> Compiler:
> cc='cc', ccflags ='-fno-strict-aliasing -I/usr/local/include
> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
> optimize='-O2',
> cppflags='-fno-strict-aliasing -I/usr/local/include'
> ccversion='', gccversion='2.95.3 20010315 (release)',
> gccosandvers=''
> intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
> d_longlong=define, longlongsize=8, d_longdbl=define,
> longdblsize=12
> ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
> lseeksize=8
> alignbytes=4, usemymalloc=n, prototype=define
> Linker and Libraries:
> ld='cc', ldflags =' -L/usr/local/lib'
> libpth=/usr/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.2.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'
>
> Locally applied patches:
>
>
> ---
> @INC for perl v5.6.1:
> /usr/lib/perl5/i386-linux
> /usr/lib/perl5
> /usr/lib/perl5/site_perl/i386-linux
> /usr/lib/perl5/site_perl
> /usr/lib/perl5/site_perl
> .
>
> ---
> Environment for perl v5.6.1:
> HOME=/root
> LANG (unset)
> LANGUAGE (unset)
> LC_ALL=POSIX
> LD_LIBRARY_PATH (unset)
> LOGDIR (unset)
>
PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/local/ssl/bin:/opt/www/htdig/bin:/opt/kde/bin:/opt/sgml/bin:/usr/share/texmf/bin:/usr/openwin/bin
Show quoted text> PERL_BADLANG (unset)
> SHELL=/bin/bash