On 2014-01-28 08:32, Luca Ferrari wrote:

often I find myself writing something like the following to get the
"human" date:

my ($day, $month, $year) = (localtime())[3..5];
$month++, $year += 1900;
print "\nToday is $month / $day / $year \n";


I was wondering if there's a smarter pattern to get the right value in
one single line. At least there's no simple "map" I can think of.

perl -wE'
  say sprintf "%s-%02d-%02d",
              map {$_->[5]+1900, $_->[4]+1, $_->[3]}
                  [localtime];
'
2014-01-28


perl -MPOSIX=strftime -wE'
  say strftime "%F", localtime;
'
2014-01-28


perl -MTime::Piece -wE'
  say localtime->strftime("%F");
'
2014-01-28

--
Ruud


--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to