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

Owner: stmpeters <steve [at] fisharerojo.org>
Requestors: daveola <perlbug [at] daveola.com>
Cc:
AdminCc:

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



Subject: push returning total number elements instead of number new elements
Date: Fri, 16 Sep 2005 13:37:59 -0700
To: perlbug [...] perl.org
From: David Ljung Madison <dave [...] getdave.com>
Download (untitled) / with headers
text/plain 3.5k
This is a bug report for perl from perlbug@daveola.com, generated with the help of perlbug 1.35 running under perl v5.8.4. ----------------------------------------------------------------- [Please enter your report here] The return value for push is the total number of elements in the array. According to the docs, push: "Returns the new number of elements in the array." Example code: my @j = (1..100); print push(@j,42), "\n"; Should display 1, but it displays 101. [Please do not change anything below this line] ----------------------------------------------------------------- --- Flags: category=core severity=medium --- Site configuration information for perl v5.8.4: Configured by Debian Project at Tue Mar 8 20:31:23 EST 2005. Summary of my perl5 (revision 5 version 8 subversion 4) configuration: Platform: osname=linux, osvers=2.4.27-ti1211, archname=i386-linux-thread-multi uname='linux kosh 2.4.27-ti1211 #1 sun sep 19 18:17:45 est 2004 i686 gnulinux ' config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=i386-linux -Dprefix=/usr -Dprivlib=/usr/share/perl/5.8 -Darchlib=/usr/lib/perl/5.8 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.8.4 -Dsitearch=/usr/local/lib/perl/5.8.4 -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 -Uusesfio -Uusenm -Duseshrplib -Dlibperl=libperl.so.5.8.4 -Dd_dosuid -des' hint=recommended, useposix=true, d_sigaction=define 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='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -I/usr/local/include' ccversion='', gccversion='3.3.5 (Debian 1:3.3.5-9)', 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, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt perllibs=-ldl -lm -lpthread -lc -lcrypt libc=/lib/libc-2.3.2.so, so=so, useshrplib=true, libperl=libperl.so.5.8.4 gnulibc_version='2.3.2' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib' Locally applied patches: --- @INC for perl v5.8.4: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . --- Environment for perl v5.8.4: HOME=/home/dave LANG=C LANGUAGE (unset) LC_ALL=C LC_CTYPE= LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=.:/home/dave/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/X11R6/bin:/sbin:/usr/sbin:/usr/local/sbin:/WWW/web/MarginalHacks.com/bin PERL_BADLANG (unset) SHELL=/usr/bin/tcsh
Subject: RE: [perl #37186] push returning total number elements instead of number new elements
Date: Fri, 16 Sep 2005 15:44:31 -0700
To: <perl5-porters [...] perl.org>, <bugs-bitbucket [...] rt.perl.org>
From: "DeRykus, Charles E" <charles.e.derykus [...] boeing.com>
Download (untitled) / with headers
text/plain 230b
Show quoted text
> "Returns the new number of elements in the array."
I believe that should be interpreted "the new (total) number of elements in the array" rather than "the new number of elements added to the array". -- Charles DeRykus
Subject: Re: [perl #37186] push returning total number elements instead of number new elements
Date: Fri, 16 Sep 2005 18:46:02 -0400
To: perl5-porters [...] perl.org
From: Ronald J Kimball <rjk-perl-p5p [...] tamias.net>
Download (untitled) / with headers
text/plain 466b
On Fri, Sep 16, 2005 at 01:38:41PM -0700, David Ljung Madison wrote: Show quoted text
> The return value for push is the total number of elements in the array. > > According to the docs, push: > > "Returns the new number of elements in the array." > > Example code: > > my @j = (1..100); > print push(@j,42), "\n"; > > Should display 1, but it displays 101.
push returns the new (number of elements) in the array, not the number of (new elements) in the array. Ronald
Subject: Re: [perl #37186] push returning total number elements instead of number new elements
Date: Fri, 16 Sep 2005 18:46:23 -0400
To: perl5-porters [...] perl.org
From: Joshua Juran <jjuran [...] gmail.com>
Download (untitled) / with headers
text/plain 585b
On Sep 16, 2005, at 4:38 PM, David Ljung Madison (via RT) wrote: Show quoted text
> The return value for push is the total number of elements in the array. > > According to the docs, push: > > "Returns the new number of elements in the array."
Right -- the new number of elements, as opposed to the number of new elements. Show quoted text
> Example code: > > my @j = (1..100); > print push(@j,42), "\n"; > > Should display 1, but it displays 101.
My reading of the docs you quoted is consistent with the exhibited behavior. The old number of elements is 100 and the new number of elements is 101. Josh
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 820b
Show quoted text
> [daveola - Fri Sep 16 13:38:40 2005]: > > > This is a bug report for perl from perlbug@daveola.com, > generated with the help of perlbug 1.35 running under perl v5.8.4. > > > ----------------------------------------------------------------- > [Please enter your report here] > > The return value for push is the total number of elements in the > array. > > According to the docs, push: > > "Returns the new number of elements in the array." > > Example code: > > my @j = (1..100); > print push(@j,42), "\n"; > > Should display 1, but it displays 101. >
The documentation of "push" has been clarified to indicate that it returns the size of the array following the push. Change 25678 by stevep@stevep-kirk on 2005/10/02 04:42:46 Clarify the documentation regarding the return value from C<push>.


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