Skip Menu |
Report information
Id: 4574
Status: pending release
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: ilya [at]

Operating System: All
PatchStatus: (no value)
Severity: low
Type: library
Perl Version:
  • 5.7.0
  • 5.14.0
Fixed In: 5.27.7

Date: Wed, 1 Nov 2000 20:13:52 -0500
From: Ilya Zakharevich <ilya [...]>
To: perlbug [...]
Subject: readpipe() broken: 2 bugs
Download (untitled) / with headers
text/plain 3.9k
This is a bug report for perl from, generated with the help of perlbug 1.32 running under perl v5.7.0. ./perl -wle 'print readpipe($^X, "-e", q(printp "12\n"))' sh: printp: not found ./perl-e I can see 2 bugs here: a) readpipe is not a list operator, as it should be (see my patch which made it a list operator); b) ($^X, '-e') "leak" to print(). Ilya --- Flags: category=core severity=low --- Site configuration information for perl v5.7.0: Configured by ilya at Tue Sep 26 23:09:09 EDT 2000. Summary of my perl5 (revision 5.0 version 7 subversion 0) configuration: Platform: osname=solaris, osvers=2.8, archname=sun4-solaris uname='sunos monk 5.8 generic sun4u sparc ' config_args='-des -D usedevel' 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 ='-I/usr/local/include -I/opt/local/include -I/opt/gnu/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O', cppflags='-I/usr/local/include -I/opt/local/include -I/opt/gnu/include' ccversion='WorkShop Compilers 5.0 98/12/15 C 5.0', gccversion='', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321 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, usemymalloc=y, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib -L/opt/local/lib -L/opt/gnu/lib -L/opt/SUNWspro/SC5.0/lib ' libpth=/usr/local/lib /opt/local/lib /opt/gnu/lib /opt/SUNWspro/SC5.0/lib /lib /usr/lib /usr/ccs/lib libs=-lsocket -lnsl -lgdbm -ldl -lm -lc -lcrypt -lsec libc=/lib/, so=so, useshrplib=false, libperl=libperl.a Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' ' cccdlflags='-KPIC', lddlflags='-G -L/usr/local/lib -L/opt/local/lib -L/opt/gnu/lib -L/opt/SUNWspro/SC5.0/lib' Locally applied patches: --- @INC for perl v5.7.0: lib /home/ilya/perl /home/ilya/perl/lib/perl5/site_perl/5.005 /home/ilya/perl/lib/perl5 /home/ilya/perl/lib/perl5/site_perl /home/ilya/perl/lib/perl5/site_perl/sun4-solaris /home/ilya/perl/lib/perl5/site_perl/5.005/sun4-solaris /home/ilya/perl/lib/perl5/5.00503/ /usr/local/lib/perl5/5.7.0/sun4-solaris /usr/local/lib/perl5/5.7.0 /usr/local/lib/perl5/site_perl/5.7.0/sun4-solaris /usr/local/lib/perl5/site_perl/5.7.0 /usr/local/lib/perl5/site_perl/5.6.0/sun4-solaris /usr/local/lib/perl5/site_perl/5.6.0 /usr/local/lib/perl5/site_perl/5.005/sun4-solaris /usr/local/lib/perl5/site_perl/5.005 /usr/local/lib/perl5/site_perl . --- Environment for perl v5.7.0: HOME=/home/ilya LANG=en_US.ISO8859-1 LANGUAGE (unset) LC_COLLATE=en_US.ISO8859-1 LC_CTYPE=en_US.ISO8859-1 LC_MESSAGES=C LC_MONETARY=en_US.ISO8859-1 LC_NUMERIC=en_US.ISO8859-1 LC_TIME=en_US.ISO8859-1 LD_LIBRARY_PATH=/opt/local/lib:/usr/openwin/lib:/opt/local/lib/rvplayer5.0:/opt/X11/lib:/opt/local/lib:/usr/openwin/lib:/opt/local/lib/rvplayer5.0:/opt/X11/lib:/opt/local/lib:/usr/openwin/lib:/opt/local/lib/rvplayer5.0:/opt/X11/lib LOGDIR (unset) PATH=/home/ilya/bin:/opt/SUNWspro/bin:/usr/dt/bin:/usr/ccs/bin:/usr/java/bin:/opt/netscape:/opt/microsoft/bin:/opt/Office52/program:/opt/gnu/bin:/usr/openwin/bin:/opt/X11/bin:/home/tex/bin:/opt/local/bin:/usr/bin:/opt/local/games:/opt/unsup/ilya/bin:. PERLLIB=/home/ilya/perl:/home/ilya/perl/lib/perl5/site_perl/5.005:/home/ilya/perl/lib/perl5:/home/ilya/perl/lib/perl5/site_perl:/home/ilya/perl/lib/perl5/site_perl/sun4-solaris:/home/ilya/perl/lib/perl5/site_perl/5.005/sun4-solaris:/home/ilya/perl/lib/perl5/5.00503/ PERL_BADLANG (unset) SHELL=/bin/tcsh
RT-Send-CC: perl5-porters [...]
Download (untitled) / with headers
text/plain 562b
On Wed Nov 01 09:14:00 2000, wrote: Show quoted text
> > ./perl -wle 'print readpipe($^X, "-e", q(printp "12\n"))' > sh: printp: not found > ./perl-e > > I can see 2 bugs here: > > a) readpipe is not a list operator, as it should be (see my patch > which made it a list operator); > > b) ($^X, '-e') "leak" to print().
First off, this bug still exists in 5.19. Second, you can also get the inverse of b), i.e. stealing args from print: % perl -we 'print "Just ", "echo another Perl hacker,", readpipe +()' Just another Perl hacker,
Subject: Re: [perl #4574] readpipe() broken: 2 bugs
From: Zefram <zefram [...]>
To: perl5-porters [...]
Date: Tue, 12 Dec 2017 06:29:29 +0000
Download (untitled) / with headers
text/plain 481b
Argument list handling fixed in commit 397baf232086e0a9ad6f881a9614d3dbaea853fc. That readpipe() is not a list operator is not a bug: it's documented to take a single expression, and most of the internals thought it was a unary operator. If you want a list version of readpipe(), that would be a feature request that should be raised separately. It would probably be a bad idea to turn the existing readpipe() into a list operator: the list version should be distinct. -zefram

This service is sponsored and maintained by Best Practical Solutions and runs on infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at