There is more than one way to do it

Sep 25, 2012 12:33

Ну это конечно ерунда, но всё равно мне было любопытно. Задача получить текущую дату в формате ГГММДД.

Поддавшись противоестественному желанию сделать всё плохо, я написал следующее:

my ($mday, $mon, $year);
(undef,undef,undef,$mday,$mon,$_,undef,undef,undef) = localtime(time);
$_ += 1900;
$mon++;
$mon= '0'.$mon if ($mon=~/^(d)$/);
s/dd(dd)/$1/;
$dte = $_.$mon.$mday;
say "Current date is $dte";

но тут же поняв, что за такой код я рискую быть расстрелянным, быстро исправил ситуацию:

say "Current date is ".strftime("%y%m%d",localtime(time));
Если что-то делаешь и вдруг понимаешь, что выходит у тебя всамделешный велосипед, надо сразу загуглить и найти как это было сделано до тебя.

PS. Да там ещё в начале надо use POSIX qw /strftime/;.

perl, меткаобозначающаяотсутствиеметки, Технократия

Previous post Next post
Up