Perl:从字符串创建目录

时间:2012-10-22 10:43:31

标签: perl

假设我有一个基目录/home/user/test/。现在,我有两个字符串ab,它们将成为基本目录中的文件夹,如/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时,它会在当前工作目录中创建两个单独的目录ab

那么,实现这一目标的正确方法是什么。?

2 个答案:

答案 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