In Perl, how can I create a subdirectory and, at the same time, create parent directories if they do not exist? Like UNIX's mkdir -p command?
+4
A:
Use mkpath from the File::Path module:
use File::Path qw(mkpath);
mkpath("path/to/sub/directory");
skiphoppy
2009-06-26 17:49:34
Researching this just now, I see that mkpath() is deprecated and the official interface is now make_path(). If someone writes up a great explanation as to what that buys us, I'll make that the accepted answer.
skiphoppy
2009-06-26 17:52:00
+8
A:
use File::Path qw(make_path);
make_path("path/to/sub/directory");
The deprecated mkpath and preferred make_path stemmed from a discussion in Perl 5 Porters thread that's archived here.
In a nutshell, Perl 5.10 testing turned up awkwardness in the argument parsing of the makepath() interface. So it was replaced with a simpler version that took a hash as the final argument to set options for the function.
clintp
2009-06-26 18:23:06