Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

push returning total number elements instead of number new elements #8116

Closed
p5pRT opened this issue Sep 16, 2005 · 7 comments
Closed

push returning total number elements instead of number new elements #8116

p5pRT opened this issue Sep 16, 2005 · 7 comments

Comments

@p5pRT
Copy link

p5pRT commented Sep 16, 2005

Migrated from rt.perl.org#37186 (status was 'resolved')

Searchable as RT37186$

@p5pRT
Copy link
Author

p5pRT commented Sep 16, 2005

From perlbug@daveola.com

Created by perlbug@daveola.com

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.

Perl Info

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

@p5pRT
Copy link
Author

p5pRT commented Sep 16, 2005

From charles.e.derykus@boeing.com

"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

@p5pRT
Copy link
Author

p5pRT commented Sep 16, 2005

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Sep 16, 2005

From @tamias

On Fri, Sep 16, 2005 at 01​:38​:41PM -0700, David Ljung Madison wrote​:

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

@p5pRT
Copy link
Author

p5pRT commented Sep 16, 2005

From jjuran@gmail.com

On Sep 16, 2005, at 4​:38 PM, David Ljung Madison (via RT) wrote​:

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.

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

@p5pRT
Copy link
Author

p5pRT commented Oct 2, 2005

From @smpeters

[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>.

@p5pRT
Copy link
Author

p5pRT commented Oct 2, 2005

@smpeters - Status changed from 'open' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant