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

Open fails when filename ends in " " #9472

Closed
p5pRT opened this issue Sep 6, 2008 · 5 comments
Closed

Open fails when filename ends in " " #9472

p5pRT opened this issue Sep 6, 2008 · 5 comments

Comments

@p5pRT
Copy link

p5pRT commented Sep 6, 2008

Migrated from rt.perl.org#58632 (status was 'rejected')

Searchable as RT58632$

@p5pRT
Copy link
Author

p5pRT commented Sep 6, 2008

From tag@tenet.res.in

Created by tag@tenet.res.in

This is a bug report for perl from tag@​tenet.res.in,
generated with the help of perlbug 1.35 running under perl v5.8.8.

-----------------------------------------------------------------
open fails if the filename ends in space. See the example code below,
which fails to open the file "fff " which exists in the current directory.
Verified on Debian Linux and Mac OS X 5.1.
----------------
#!/usr/bin/perl

opendir DIR, ".";
while ($f = readdir DIR)
  {
  print "readdir​: |$f| exists\n" if ($f =~ "^fff");
  }
closedir DIR;

$file = "fff ";

open CDFILE, $file | die "Can not open |$file|\n";
----------------
  Regards
  TAG
-----------------------------------------------------------------
  Timothy A. Gonsalves
Professor & Head
Dept of Computer Science & Engg
Indian Institute of Technology
Madras - 600 036, India
 
Phone​: +91-44-2257-4353/50 (o) -6353 (r) -4352 (fax)
E-mail​: tag@​tenet.res.in Web​: http​://www.cse.iitm.ernet.in
-----------------------------------------------------------------

Perl Info

Flags:
    category=core
    severity=medium

Site configuration information for perl v5.8.8:

Configured by Debian Project at Fri Apr 25 20:33:47 UTC 2008.

Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
  Platform:
    osname=linux, osvers=2.6.24.4, archname=i486-linux-gnu-thread-multi
    uname='linux ninsei 2.6.24.4 #1 smp preempt fri apr 18 15:36:09 pdt 2008 i686 gnulinux '
    config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=i486-linux-gnu -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.8 -Dsitearch=/usr/local/lib/perl/5.8.8 -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.8 -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 -pipe -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 -pipe -I/usr/local/include'
    ccversion='', gccversion='4.1.2 20061115 (prerelease) (Debian 4.1.1-21)', 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.6.so, so=so, useshrplib=true, libperl=libperl.so.5.8.8
    gnulibc_version='2.3.6'
  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.8:
    /etc/perl
    /usr/local/lib/perl/5.8.8
    /usr/local/share/perl/5.8.8
    /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.8:
    HOME=/home/faculty/tag/
    LANG=en_IN
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=.:/home/faculty/tag//bin/i386:/home/faculty/tag//bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
    PERL_BADLANG (unset)
    SHELL=/bin/csh

@p5pRT
Copy link
Author

p5pRT commented Sep 6, 2008

From @gbarr

On Sep 6, 2008, at 8​:18 AM, tag@​tenet.res.in (via RT) wrote​:

-----------------------------------------------------------------
open fails if the filename ends in space. See the example code below,
which fails to open the file "fff " which exists in the current
directory.
Verified on Debian Linux and Mac OS X 5.1.
----------------

<snip>

open CDFILE, $file | die "Can not open |$file|\n";

That is as documented.

$ perldoc -f open

  The filename passed to 2−argument (or 1−argument) form of
  open() will have leading and trailing whitespace deleted, and
  the normal redirection characters honored. This property,
  known as "magic open", can often be used to good effect. A
  user could specify a filename of "rsh cat file ⎪", or you could
  change certain filenames as needed​:

If you want whitespace at the start of end of a file honored then
you need to use the 3-argument form of open

  open CDFILE, '<', $file or die "Can not open |$file|\n";perl

Graham.

@p5pRT
Copy link
Author

p5pRT commented Sep 6, 2008

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

@p5pRT p5pRT closed this as completed Sep 6, 2008
@p5pRT
Copy link
Author

p5pRT commented Sep 6, 2008

@rgs - Status changed from 'open' to 'rejected'

@p5pRT
Copy link
Author

p5pRT commented Sep 7, 2008

From tag@tenet.res.in

Greetings​:

I found the solution (by using 3 args to open()) to my problem in the
perlfunc man page. This bug report may be closed as not-a-bug.

  Regards
  TAG

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