我想在方法开头之前创建一个具有特定名称的目录。在每次迭代时,目录应该用新条目替换而不是附加。
我使用过这段代码:
sub makingDirectoryForClient {
$nameOfTheClientDirectory = $_[0];
my $directory = "D:\\ATEF\\clientfolder\\$nameOfTheClientDirectory";
my $outputvar = mkdir $directory;
}
但文件夹仍未被替换。有什么想法吗?
答案 0 :(得分:1)
如果mkdir
似乎无能为力,那么您应该编写警告声明以找出原因。失败的原因是内置变量$!
,所以我建议你写这样的子程序
sub make_client_dir {
my $client_dir = shift;
my $path = "D:\\ATEF\\clientfolder\\$client_dir";
( my $success = mkdir $path ) or
warn qq{Unable to create directory "$path": $!};
return $success;
}
请注意,我还修改了您的代码以使其更具惯用性
答案 1 :(得分:1)
我需要创建一个已经存在的同名目录,因为我认为这将用新的空文件夹替换该文件夹。但Perl不会那样工作:如果已经存在同名文件夹,mkdir
将无效。
所以我首先使用rmtree
中的File::Path
删除了目录,然后创建了一个同名的新目录。