Перестановка временной метки с помощью Perl regex

Я хотел бы изменить временную метку с помощью Perl regex с минимально возможным кодом. Оригинальный формат временной метки выглядит следующим образом:

2011/12/29 20:19:45

Все, что мне нужно сделать, это преобразовать ее так, чтобы год в начале шел после месяца/даты следующим образом:

12/29/2011 20:19:45

Я смог добиться этого с помощью 3 строк кода ниже. Мне просто интересно, есть ли способ сделать это с меньшим количеством кода. В частности, я пытался отказаться от средней строки, сохраняя $1 в промежуточную переменную, и указать $1 из первой подстановки непосредственно в regex для второй подстановки, но это привело к ошибке: "Use of uninitialized value $1 in concatenation (.) or string."

Если от второй строки нельзя избавиться, то, похоже, что и от этой нельзя избавиться до одной строки?

#my $ts = '2011/12/29 20:19:45'; #input to a subroutine

$ts =~ s/^(\d{4})\///;
my $year = $1;
$ts =~ s/ /\/$year /;
6
задан George Jempty 5 January 2012 в 16:56
поделиться