【发布时间】:2021-11-09 15:59:50
【问题描述】:
我需要帮助,我的$inputfile 每天都会更改,生成并存储在/tmp 目录下。文件格式日期如下。
/tmp
570572 Sep 13 21:02 sessions_record_2021-09-13_210052.csv
570788 Sep 14 09:01 sessions_record_2021-09-14_090041.csv
我不确定如何将其作为输入文件而不是硬编码在我的脚本中
#!/usr/bin/perl
use strict; use warnings;
use Tie::Array::CSV;
use Data::Dumper;
use Date::Parse;
use POSIX qw(strftime);
my $hours = 1;
my $timenow = time;
my $inputfile = "sessions_record_2021-09-14_090041.csv";
tie my @sessions_record, 'Tie::Array::CSV', $inputfile, {
tie_file => { recsep => "\r\n" },
text_csv => { binary => 1 }
};
tie my @incidentidlist, 'Tie::Array::CSV', 'incidentidlist.csv';
@incidentidlist = map {
([$$_[4] =~ /\A([^\s]+)/, $$_[4], $$_[18], ($timenow -
str2time($$_[18])) / 60 / 60])
} grep {
$$_[0] =~ /^ServiceINC/ && ($timenow - str2time($$_[18])) / 60 / 60 > $hours
} @sessions_record;
【问题讨论】:
-
读取文件夹,过滤名称中具有正确命名模式(即
/^sessions_record_)以及可能是今天的日期的文件,然后打开其中最近的一个。 -
@simbabque 使用 glob 可能更简单:
my @files = </tmp/sessions_record*>
标签: html regex csv perl opendir