Perl日期时间生成?
我有一个 perl 脚本,它获取系统日期并将该日期写入文件名。
系统日期分配给 TRH1 变量,然后将其设置为文件名。
$TRH1 =`date + %Y%m%d%H%M`;
print "TRH1 => $TRH1n";
open(TPFILE, ">./log/errTS_TPList_$TRH1.csv");
但是,TRH1 似乎具有正确的值,但文件名有一个问号,这是我不想要的。
TRH1 => 202103031940
errTS_TPList_202103031940?.csv
你能告诉我如何摆脱这个“?” ?
回答
正如您已经看到的那样,这是因为从 的输出date末尾有一个换行符,您需要使用chomp().
但是,实际上没有必要使用外部程序来获取日期和时间。现代版本的 Perl 带有Time::Piece,这使得它变得微不足道:
use Time::Piece;
# Perl style generally reserves uppercase variable names
# for constants
my $trh1 = localtime->strftime("%Y%m%d%H%M");
使用旧版本的 Perl,您可以strftime()从POSIX使用:
use POSIX 'strftime';
my $trh1 = strftime("%Y%m%d%H%M", localtime);