Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: How to find code written by smart people

by radiantmatrix (Parson)
on Aug 25, 2006 at 14:22 UTC ( #569589=note: print w/ replies, xml ) Need Help??


in reply to How to find code written by smart people

System calls should make you a little nervous. It seems from the context of your post that you chose a system call because Perl's mkdir doesn't do what mkdir -p does on a Unix system. Here's a more-Perlish version that will work on most platforms (not just Unix):

#!/usr/bin/perl use strict; use warnings; use File::Spec::Functions qw(splitpath catdir rel2abs); # mkdir -p emulator, call with this.pl /path/to/create my $path = rel2abs(shift @ARGV); my $place = ''; foreach my $dir ( splitpath($path) ) { $place = catdir($place, $dir); (-d $place) || (mkdir $place, 0755) or die "Problem making $place: + $!"; }
<radiant.matrix>
A collection of thoughts and links from the minds of geeks
The Code that can be seen is not the true Code
I haven't found a problem yet that can't be solved by a well-placed trebuchet


Comment on Re: How to find code written by smart people
Select or Download Code
Re^2: How to find code written by smart people
by Hue-Bond (Priest) on Aug 25, 2006 at 17:16 UTC

    Why not use File::Path?

    $ ls foo ls: foo: No such file or directory $ perl -MFile::Path -e 'mkpath "foo/bar/baz"' $ ls -d foo/bar/baz foo/bar/baz/

    Update: Err, forget it. It's already been pointed out.

    --
    David Serrano

      Because of this line in File::Path's POD:

      It returns a list of all directories (including intermediates, determined using the Unix '/' separator) created.

      That raises a concern that I'd have to pass mkpath a UNIX-style path -- the snippet I posted will accept any form supported by File::Spec::Functions. I like that better.

      <radiant.matrix>
      A collection of thoughts and links from the minds of geeks
      The Code that can be seen is not the true Code
      I haven't found a problem yet that can't be solved by a well-placed trebuchet

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://569589]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (6)
As of 2014-09-18 07:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (108 votes), past polls