#perl
#perl
Вопрос:
Я пытался создать каталог и подкаталог внутри него с помощью Perl. Вот код:
#!/usr/bin/perl
use strict;
use warnings;
use Cwd qw(abs_path);
use File::Path qw(make_path remove_tree);
my $path = abs_path();
my @create = make_path($path , '/test/data' , {
verbose => 1,
mode => 0777,
})
or die "failed to create directory /test/data $!";
Он показывает следующую ошибку:-
failed to create directory /test/data at ./perl_project.pl line 7
Что я делаю не так?
Комментарии:
1. Совет:
my $path = abs_path();
можно упростить с помощьюmy $path = ".";
2. Совет:
my $path = "."; make_path($path . '/test/data', ...);
можно упростить доmake_path('test/data', ...);
Ответ №1:
Если вы хотите создать путь /test/data
в своем текущем каталоге, измените:
my @create = make_path($path , '/test/data' , {
Для:
my @create = make_path($path . '/test/data' , {
# ^
Поскольку вы использовали запятую в make_path, ваш код пытается создать 2 каталога: один в текущем каталоге ( $path
), а другой в абсолютном пути /test/data
.