我正在尝试使用perl为我的输出文件添加日期戳。我得到的是一个奇怪的'?'附加到日志文件的时间戳。
输出文件:abcdump-20110120?.log
另一个奇怪的行为是我的代码不会使用.csv扩展名命名我的输出文件,我使用$dt
(日期)变量$node-$tblist.$dt.csv
输出文件:foo-p000.20110120
但是,如果我从命名惯例$dt
$node-$tblist.csv
它会起作用:foo-p000.csv
一定是我试图创建我的日期戳的方式。
代码:
my $dt = `date '+%Y%m%d'`;
open (LOG, "> abcdump-$dt.log") || die "cannot append";
foreach my $tblist (@tblist)
{
chomp $tblist;
my $crfile = qq{mysql -u test -pf00 --database $dbsrc -h $node -ss -e "SELECT 'a','b','c' UNION SELECT 1,2,3 FROM $tblist"| tr "\t" ",">$node-$tblist.$dt.csv};
system($crfile);
print LOG "Executed on $dt => $crfile\n";
};
close(LOG);
答案 0 :(得分:4)
忽略代码中的其他问题,我怀疑它是date
输出中的换行符。
chomp $dt;
应该处理你描述的两个问题。
您可能还希望考虑使用Perl的localtime
或gmtime
。