尝试在perl中输出文件的日期/时间戳的问题

时间:2011-01-21 06:00:13

标签: perl

我正在尝试使用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);

1 个答案:

答案 0 :(得分:4)

忽略代码中的其他问题,我怀疑它是date输出中的换行符。

chomp $dt;

应该处理你描述的两个问题。

您可能还希望考虑使用Perl的localtimegmtime