Мне нужна помощь, чтобы понять, как форматировать даты в perl. У меня есть работающий Perl-скрипт с регулярным выражением, который отлично работает, если я использую жестко закодированные строки даты, например:
my $mon = 'Aug';
my $day = '05';
my $year = '2010';
Эти переменные используются в регулярном выражении, например:
if ($line =~ m/(.* $mon $day) \d{2}:\d{2}:\d{2} $year: ([^:]+):backup:/)
Теперь мне нужно автоматизировать эту часть кода и систематически использовать текущую дату.
Я посмотрел в perl localtime и попытался использовать unix date и бросить их в переменные.
Мне нужно, чтобы дни недели, состоящие из одной цифры, были дополнены 0. Как и сегодня, «Авг» 05
'2010', потому что входной файл, который я использую для регулярного выражения, имеет такие даты.
Моя вторая попытка с Unix и форматированием возвращает числа, но мне нужно, чтобы они были строками:
my $mon2=`date '+%b'`;
my $day2=`date '+%d'`;
my $year2=`date '+%Y'`;
Мой тестовый код для игры с форматами даты:
#!/usr/local/bin/perl -w
use strict;
my $mon = 'Aug';
my $day = '05';
my $year = '2010';
my $mon2=`date '+%b'`;
my $day2=`date '+%d'`;
my $year2=`date '+%Y'`;
print "$mon";
print "$day";
print "$year";
print "$mon2";
print "$day2";
print "$year2";
Мой вывод:
Aug052010Aug
05
2010