假设我有一个基目录/home/user/test/
。现在,我有两个字符串a
,b
,它们将成为基本目录中的文件夹,如/home/user/test/a/b
。
目前我正在做的是:
use File::Path qw(make_path);
my $path = "$basedir"."/"."a"."/"."b"
make_path("$path");
现在,我们正在寻找的是:
my $dir = "/home/user/test";
my $x = "a";
my $y = "b";
make_path($dir, $x, $y);
但是当我运行上面的代码而不是创建/home/user/test/a/b
时,它会在当前工作目录中创建两个单独的目录a
和b
。
那么,实现这一目标的正确方法是什么。?
答案 0 :(得分:3)
这是一种简单的方法:
use strict;
use warnings;
use File::Path qw(make_path);
my $dir = "/home/user/test";
my $x = "a";
my $y = "b";
make_path(join '/',$dir,$x,$y);
查看join
以获取更多信息。
答案 1 :(得分:3)
更好地使用 Path :: Class :: Dir
use Path::Class qw(dir); # Export a short constructor
my $dir = dir('foo', 'bar'); # Path::Class::Dir object
my $dir = Path::Class::Dir->new('foo', 'bar'); # Same thing
# Stringifies to 'foo/bar' on Unix, 'foo\bar' on Windows, etc.
print "dir: $dir\n";
另见 perldoc Path :: Class :: Dir 要么 https://metacpan.org/module/Path::Class::Dir