develooper Front page | perl.perl5.porters | Postings from September 2016

[perl #115810] $_[$ref] warnings discrepancy

Thread Next
From:
Dan Collins via RT
Date:
September 27, 2016 17:04
Subject:
[perl #115810] $_[$ref] warnings discrepancy
Message ID:
rt-4.0.24-22704-1474995850-1847.115810-14-0@perl.org
On Sun Nov 18 14:38:27 2012, sprout wrote:
> Pint:perl.git-copy sprout$ ./perl -Ilib -we '() = $_[[]]'
> Use of reference "ARRAY(0x802a00)" as array index at -e line 1.
> Pint:perl.git-copy sprout$ ./perl -Ilib -we '() = $_[$/=[]]'
>  Pint:perl.git-copy sprout$
> 
> I would expect the same output from both.
> 
> ---
> Flags:
>     category=core
>     severity=low
> ---
> Site configuration information for perl 5.17.6:
> 
> Configured by sprout at Sat Nov 17 23:09:15 PST 2012.
> 
> Summary of my perl5 (revision 5 version 17 subversion 6)
> configuration:
>   Local Commit: e1d8196c98d7cc6d34eedc83ba4193885673d43d
>   Ancestor: 10ffaf90349dac17b6050fa36821c8d99f5dfb87
>   Platform:
>     osname=darwin, osvers=10.5.0, archname=darwin-thread-multi-2level
>     uname='darwin pint.local 10.5.0 darwin kernel version 10.5.0: fri
> nov 5 23:20:39 pdt 2010; root:xnu-1504.9.17~1release_i386 i386 '
>     config_args='-de -DDEBUGGING -Duseithreads -Dusedevel -Accflags=
> -fcatch-undefined-behavior -DPERL_POISON'
>     hint=recommended, useposix=true, d_sigaction=define
>     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 ='-DDEBUGGING -fno-strict-aliasing -pipe
> -fstack-protector -I/usr/local/include',
>     optimize='-O3 -g',
>     cppflags='-DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector
> -I/usr/local/include'
>     ccversion='', gccversion='4.2.1 (Apple Inc. build 5664)',
> gccosandvers=''
>     intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
>     d_longlong=define, longlongsize=8, d_longdbl=define,
> longdblsize=16
>     ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
> lseeksize=8
>     alignbytes=8, prototype=define
>   Linker and Libraries:
>     ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -fstack-
> protector -L/usr/local/lib'
>     libpth=/usr/local/lib /usr/lib
>     libs=-ldbm -ldl -lm -lutil -lc
>     perllibs=-ldl -lm -lutil -lc
>     libc=, so=dylib, useshrplib=false, libperl=libperl.a
>     gnulibc_version=''
>   Dynamic Linking:
>     dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
>     cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup
> -L/usr/local/lib -fstack-protector'
> 
> Locally applied patches:
> 
> 
> ---
> @INC for perl 5.17.6:
>     /usr/local/lib/perl5/site_perl/5.17.6/darwin-thread-multi-2level
>     /usr/local/lib/perl5/site_perl/5.17.6
>     /usr/local/lib/perl5/5.17.6/darwin-thread-multi-2level
>     /usr/local/lib/perl5/5.17.6
>     /usr/local/lib/perl5/site_perl
>     .
> 
> ---
> Environment for perl 5.17.6:
>     DYLD_LIBRARY_PATH (unset)
>     HOME=/Users/sprout
>     LANG=en_US.UTF-8
>     LANGUAGE (unset)
>     LD_LIBRARY_PATH (unset)
>     LOGDIR (unset)
>     PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/bin
>     PERL_BADLANG (unset)
>     SHELL=/bin/bash

The latter is now a compile time error, since 5.19.9:

    Setting $/ to an ARRAY reference is forbidden at -e line 1

Some special variables still produce no warning or error, including $$, so I do not know if this is fixed.

-- 
Respectfully,
Dan Collins

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