2

base directory があるとします/home/user/test/。これで、のようなベース ディレクトリ内のフォルダーになる2 つの stringaがあります。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/b2 つの別個のディレクトリが作成されます。ab

それで、これを達成する正しい方法は何ですか。

4

2 に答える 2

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も参照してください

于 2012-10-22T11:23:59.753 に答える
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てください。

于 2012-10-22T10:47:57.133 に答える