develooper Front page | perl.perl5.porters | Postings from January 2001

Re: [ID 20010111.021] (builtin)mkdir and File::Path::mkpath problem

Thread Previous | Thread Next
From:
Stephen P. Potter
Date:
January 15, 2001 19:44
Subject:
Re: [ID 20010111.021] (builtin)mkdir and File::Path::mkpath problem
Message ID:
200101160442.XAA02727@spotter.yi.org
I don't see this in bleadperl, so presumably whatever happened in 5.6.0
will be fixed in 5.6.1.

-spp

Lightning flashed, thunder crashed and miki@wit401402.student.utwente.nl whispe
red:
| 
| This is a bug report for perl from miki@dds.nl,
| generated with the help of perlbug 1.28 running under perl v5.6.0.
| 
| 
| -----------------------------------------------------------------
| [Please enter your report here]
| There seems to be a problem with the built-in function 'mkdir',
| as well as (by consequence) library functions that use it (verified
| with File::Path::mkpath.
| The problem is that the Perl built-in 'mkdir' does not do the right thing
| (compared to the *nix 'mkdir') when there is a trailing slash
| in the path name.
| I noticed the problem when trying to use the HTML::Latex module.
| 
| Example (mkdir):
| 
| mkdir "foo"; # works, returns true
| mkdir "bar/"; # doesn't work and returns false
| 
| Example (mkpath):
| mkpath("foo/bar/baz"); # works
| mkpath("baz/bar/foo/"); # doesn't work, croaks when trying to create 'foo'
| 
| A workaround seems to be to apply the following patch:
| 
| *** ../Path.pm.orig	Wed Oct 11 02:26:47 2000
| --- ../Path.pm	Fri Jan 12 04:43:16 2001
| ***************
| *** 94,99 ****
| --- 94,100 ----
|   use 5.005_64;
|   use Carp;
|   use File::Basename ();
| + use File::Spec;
|   use Exporter ();
|   use strict;
|   
| ***************
| *** 119,124 ****
| --- 120,126 ----
|       my(@created,$path);
|       foreach $path (@$paths) {
|   	$path .= '/' if $^O eq 'os2' and $path =~ /^\w:\z/s; # feature of CRT 
| +         $path = File::Spec->canonpath($path);
|   	next if -d $path;
|   	# Logic wants Unix paths, so go with the flow.
|   	$path = VMS::Filespec::unixify($path) if $Is_VMS;
| 
| 
| [Please do not change anything below this line]
| -----------------------------------------------------------------
| ---
| Flags:
|     category=core
|     severity=medium
| ---
| Site configuration information for perl v5.6.0:
| 
| Configured by feyrer at Wed Oct 11 02:22:07 MEST 2000.
| 
| Summary of my perl5 (revision 5.0 version 6 subversion 0) configuration:
|   Platform:
|     osname=netbsd, osvers=1.5_alpha2, archname=i386-netbsd
|     uname='netbsd yui 1.5_alpha2 netbsd 1.5_alpha2 (yui) #11: fri oct 6 17:04
> :19 mest 2000 feyrer@yui:disk1cvssrc-1.5sysarchi386compileyui i386 '
|     config_args='-sde -Dprefix=/usr/pkg -Doptimize=-O2 -Darchname=i386-netbsd
>  -Dcc=gcc -Dusemymalloc=false -Duseshrplib=true'
|     hint=recommended, useposix=true, d_sigaction=define
|     usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=u
> ndef
|     useperlio=undef d_sfio=undef uselargefiles=define 
|     use64bitint=undef use64bitall=undef uselongdouble=undef usesocks=undef
|   Compiler:
|     cc='gcc', optimize='-O2', gccversion=egcs-2.91.66 19990314 (egcs-1.1.2 re
> lease)
|     cppflags='-fno-strict-aliasing -I/usr/pkg/include'
|     ccflags ='-fno-strict-aliasing -I/usr/pkg/include'
|     stdchar='char', d_stdstdio=undef, usevfork=false
|     intsize=4, longsize=4, ptrsize=4, doublesize=8
|     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
|     ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeks
> ize=8
|     alignbytes=4, usemymalloc=n, prototype=define
|   Linker and Libraries:
|     ld='gcc', ldflags =' -L/usr/pkg/lib'
|     libpth=/usr/pkg/lib /lib /usr/lib
|     libs=-lm -lcrypt
|     libc=/usr/lib/libc.so, so=so, useshrplib=true, libperl=libperl.so
|   Dynamic Linking:
|     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-R/u
> sr/pkg/lib  -Wl,-R/usr/pkg/lib/perl5/5.6.0/i386-netbsd/CORE'
|     cccdlflags='-DPIC -fPIC ', lddlflags='--whole-archive -shared  -L/usr/pkg
> /lib'
| 
| Locally applied patches:
|     
| 
| ---
| @INC for perl v5.6.0:
|     /usr/pkg/lib/perl5/5.6.0/i386-netbsd
|     /usr/pkg/lib/perl5/5.6.0
|     /usr/pkg/lib/perl5/site_perl/5.6.0/i386-netbsd
|     /usr/pkg/lib/perl5/site_perl/5.6.0
|     /usr/pkg/lib/perl5/site_perl
|     .
| 
| ---
| Environment for perl v5.6.0:
|     HOME=/home/miki
|     LANG (unset)
|     LANGUAGE (unset)
|     LD_LIBRARY_PATH (unset)
|     LOGDIR (unset)
|     PATH=/home/miki/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/pkg
> /bin:/usr/pkg/sbin:/usr/games:/usr/local/bin:/usr/local/sbin
|     PERL_BADLANG (unset)
|     SHELL=/usr/pkg/bin/bash
| 

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About