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

reopen of STDIN doesn't flush input buffer #7723

Open
p5pRT opened this issue Dec 25, 2004 · 6 comments
Open

reopen of STDIN doesn't flush input buffer #7723

p5pRT opened this issue Dec 25, 2004 · 6 comments

Comments

@p5pRT
Copy link

p5pRT commented Dec 25, 2004

Migrated from rt.perl.org#33180 (status was 'open')

Searchable as RT33180$

@p5pRT
Copy link
Author

p5pRT commented Dec 25, 2004

From perl-5.8.0@ton.iguana.be

Created by perl-5.8.0@ton.iguana.be

contents of file foo​:
----
abc
def
ghi
jkl
----

contents of file bar​:
----
123
456
789
----

program​:
----
#! /usr/bin/perl -w
use strict;
# local *STDIN;
sub stdin {
  my $name = shift;
  open(STDIN, "<", $name) || die "Could not open $name​: $!";
  my $foo = <STDIN>;
  print "Read $name=$foo";
}

stdin("foo");
stdin("bar");
----

outputs​:

Read foo=abc
Read bar=def

it works as expected for 1) other filehandles, 2) if you uncomment
the local *STDIN line or 3) if you close STDIN before doing the open​:

Read foo=abc
Read bar=123

Perl Info

Flags:
    category=core
    severity=medium

This perlbug was built using Perl v5.8.6 - Fri Dec 24 19:25:13 CET 2004
It is being executed now by  Perl v5.8.4 - Thu Jun  3 13:28:19 CEST 2004.

Site configuration information for perl v5.8.4:

Configured by ton at Thu Jun  3 13:28:19 CEST 2004.

Summary of my perl5 (revision 5 version 8 subversion 4) configuration:
  Platform:
    osname=linux, osvers=2.6.5, archname=i686-linux-64int-ld
    uname='linux quasar 2.6.5 #8 mon apr 5 05:41:20 cest 2004 i686 gnulinux '
    config_args=''
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=define use64bitall=undef uselongdouble=define
    usemymalloc=y, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2 -fomit-frame-pointer',
    cppflags='-fno-strict-aliasing -I/usr/local/include'
    ccversion='', gccversion='3.4.0 20031231 (experimental)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long long', ivsize=8, nvtype='long double', nvsize=12, 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=-lnsl -ldb -ldl -lm -lcrypt -lutil -lc
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
    libc=/lib/libc-2.3.2.so, so=so, useshrplib=false, libperl=libperl.a
    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:
    /usr/lib/perl5/5.8.4/i686-linux-64int-ld
    /usr/lib/perl5/5.8.4
    /usr/lib/perl5/site_perl/5.8.4/i686-linux-64int-ld
    /usr/lib/perl5/site_perl/5.8.4
    /usr/lib/perl5/site_perl
    .


Environment for perl v5.8.4:
    HOME=/home/ton
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/home/ton/bin.Linux:/home/ton/bin:/home/ton/bin.SampleSetup:/opt/schily/bin:/usr/local/bin:/usr/local/sbin:/home/oracle/product/9.0.1/bin:/usr/local/ar/bin:/usr/games/bin:/usr/X11R6/bin:/usr/share/bin:/usr/bin:/usr/sbin:/bin:/sbin:.
    PERL_BADLANG (unset)
    SHELL=/bin/bash

@p5pRT
Copy link
Author

p5pRT commented Oct 12, 2012

From @jkeenan

On Fri Dec 24 17​:19​:22 2004, perl-5.8.0@​ton.iguana.be wrote​:

This is a bug report for perl from perl-5.8.0@​ton.iguana.be,
generated with the help of perlbug 1.35 running under perl v5.8.4.

-----------------------------------------------------------------
[Please enter your report here]

contents of file foo​:
----
abc
def
ghi
jkl
----

contents of file bar​:
----
123
456
789
----

program​:
----
#! /usr/bin/perl -w
use strict;
# local *STDIN;
sub stdin {
my $name = shift;
open(STDIN, "<", $name) || die "Could not open $name​: $!";
my $foo = <STDIN>;
print "Read $name=$foo";
}

stdin("foo");
stdin("bar");
----

outputs​:

Read foo=abc
Read bar=def

it works as expected for 1) other filehandles, 2) if you uncomment
the local *STDIN line or 3) if you close STDIN before doing the open​:

Read foo=abc
Read bar=123

This RT has not attracted any comments since being filed nearly eight
years ago. I have confirmed the OP's claim. In the hope of getting
more eyeballs on the ticket, I am attaching three files which can be
used to verify the problem.

Thank you very much.
Jim Keenan

@p5pRT
Copy link
Author

p5pRT commented Oct 12, 2012

From @jkeenan

bar_33180

@p5pRT
Copy link
Author

p5pRT commented Oct 12, 2012

From @jkeenan

33180.pl

@p5pRT
Copy link
Author

p5pRT commented Oct 12, 2012

From @jkeenan

foo_33180

@p5pRT
Copy link
Author

p5pRT commented Oct 12, 2012

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

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

2 participants