проблемы при попытке добавить дату / время для вывода файлов в Perl - PullRequest
0 голосов
/ 21 января 2011

Я пытаюсь добавить метку даты в мои выходные файлы, используя 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 Ответ

4 голосов
/ 21 января 2011

Игнорируя другие проблемы в вашем коде, я подозреваю, что это новая строка как часть вывода date.

chomp $dt;

должна решить обе описанные вами проблемы.* Вы также можете рассмотреть возможность использования вместо Perl's localtime или gmtime.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...