这是我的perl代码段
//...
case .Success(let result):
switch self {
case is MOProject:
Mapper<MOProject>().map(result)
completion(result: Result(success:"dd"))
case is MOOrganization:
Mapper<MOOrganization>().map(result)
completion(result: Result(success:"dd"))
}
case .Failure( _):
//...
我正在将tail -f的输出从文件解析为我的perl代码,我真的很想获得实际的时间戳,目前有些执行if($line =~ m/^Warning: (.*)$/){
$subStepValues = {
Warning => $1,
Warning_timeStamp => `date`,
};
push @{$subsSteps->{'subStepValues'}}, $subStepValues;
}
的工作方式不正常
还有其他更好的建议吗?
答案 0 :(得分:2)
一个漂亮的ISO时间戳怎么样?
use POSIX qw(strftime);
if ($line =~ m/^Warning: (.*)$/)
{
$subStepValues = {
Warning => $1,
Warning_timeStamp => strftime("%Y-%m-%dT%H:%M:%S", localtime),
};
push @{$subsSteps->{'subStepValues'}}, $subStepValues;
}
这是一个简单的概念验证,从命令行使用一个空文件并在其上运行tail -f然后转到另一个终端并以echo something >> log
schumack@daddyo2 12-18T1:57:23 338> touch log
schumack@daddyo2 12-18T1:57:26 339> tail -f log | perl -lne 'BEGIN{use POSIX qw(strftime);}chomp; printf "%s -- %s\n", strftime("%Y-%m-%dT%H:%M:%S", localtime), $_;'
2015-12-18T01:57:40 -- hello
2015-12-18T01:57:46 -- line 2
2015-12-18T01:57:50 -- line 3