gpt4 book ai didi

linux - 简单的 perl opendir

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:56 27 4
gpt4 key购买 nike

我对 Perl 完全陌生,刚刚开始学习它。我遇到了我需要运行的这个脚本,其中包含一些网络 Tstat 跟踪数据。但是,我收到错误“无法解析日期”。

生成此代码的代码在这里

foreach my $dir (@trace_dirs) {
undef @traces;
opendir(DIR, $dir) || die "Can't open dir: $dir \n";
@traces = grep { /.out$/ && -d "$dir/$_" } readdir(DIR);
foreach my $trace (@traces) {
$trace =~ /^(\d\d)_(\d\d)_(\d\d)_(\w\w\w)_(\d\d\d\d)/;
$trace_date=&ParseDate("$3/$4/$5 $1:$2") || die "Cannot parse date \n";
$traces{$trace_date} = $trace;
$trace_dir{$trace_date} = $dir;
}
closedir DIR;
}

有人可以告诉我这段代码在寻找什么吗?

最佳答案

当您遇到这样的问题时,请查看您尝试使用的数据来给自己找麻烦。确保 $trace 中的值符合您的预期,并且您创建的日期字符串符合您的预期:

 print "Trace is [$trace]\n";
if( $trace =~ /^(\d\d)_(\d\d)_(\d\d)_(\w\w\w)_(\d\d\d\d)/ ) {
my $date = "$3/$4/$5 $1:$2";
print "date is [$date]\n";
$trace_date= ParseDate( $date ) || die "Cannot parse date [$date]\n";
}

我猜测 $4 中的值(显然是“Jan”、“Feb”等字符串)不是 ParseDate 喜欢的内容。

请注意,您应该仅在成功的模式匹配后使用捕获变量,以免它们在不同的匹配中遗留下来。

关于linux - 简单的 perl opendir,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3607957/

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