gpt4 book ai didi

perl - 如果不存在,则在Perl中为日志文件创建目录

转载 作者:行者123 更新时间:2023-12-04 00:10:26 25 4
gpt4 key购买 nike

我有一个Perl脚本,需要一些参数。它是这样执行的:

exec myscript.pl --file=/path/to/input/file --logfile=/path/to/logfile/logfile.log


我在脚本中包含以下行:

open LOGFILE, ">>$logFilePath" or die "Can't open '$logFilePath': $!\n";


其中 $logfilePath从命令行获取。
如果存在路径/ path / to / logfile /,但没有logfile.log,则仅创建它(这是所需的操作)。但是,如果没有这样的路径,它将无法启动。如果在运行脚本之前不存在该脚本,如何使该脚本创建日志文件的路径?

最佳答案

假设您在变量logfile.log中具有日志文件的路径(该路径可能包含也可能不包含文件名:$full_path)。然后,可以根据需要创建相应的目录树:

use File::Basename qw( fileparse );
use File::Path qw( make_path );
use File::Spec;

my ( $logfile, $directories ) = fileparse $full_path;
if ( !$logfile ) {
$logfile = 'logfile.log';
$full_path = File::Spec->catfile( $full_path, $logfile );
}

if ( !-d $directories ) {
make_path $directories or die "Failed to create path: $directories";
}


现在, $full_path将包含 logfile.log文件的完整路径。路径中的目录树也将被创建。

关于perl - 如果不存在,则在Perl中为日志文件创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12051440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com