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);


以上是Perl日期时间生成?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>