我有一个 perl 脚本,它获取系统日期并将该日期写入文件名。
系统日期被分配给 TRH1 变量,然后它被设置为一个文件名。
$TRH1 =`date + %Y%m%d%H%M`;
print "TRH1 => $TRH1\n";
open(TPFILE, ">./log/errTS_TPList_$TRH1.csv");
然而,TRH1 似乎有正确的值,但文件名有一个问号,这是我不希望的。
TRH1 => 202103031940
errTS_TPList_202103031940?.csv
你能告诉我如何摆脱这个“?” ?
最佳答案
因为你 already been shown ,这是因为 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,您可以使用 POSIX 中的 strftime()
:
use POSIX 'strftime';
my $trh1 = strftime("%Y%m%d%H%M", localtime);
关于生成 Perl 日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66470227/