Perl: Display todays date in the form YYYYMMDD.

perl -e 'printf("%04d%02d%02d\n", sub {($_[5]+1900, $_[4]+1, $_[3])}->(localtime));'


The following should help to decipher this code :-

example$ perl -e 'sub anon_ref { return ($_[5]+1900, $_[4]+1, $_[3]);}; printf("%04d%02d%02d\n", anon_ref(2, 16, 21, 23, 7, 105, 2, 234, 1))'
20050823

example$ perl -e 'use Data::Dumper ;sub {print Dumper \@_}->();'
$VAR1 = [];

example$ perl -e 'use Data::Dumper ;sub {print Dumper \@_}->("xxx", "yyy");'
$VAR1 = [
          'xxx',
          'yyy'
        ];

example$ perl -e 'use Data::Dumper ;sub {print Dumper \@_}->xxx();'
Can't call method "xxx" on unblessed reference at -e line 1.

example$ perl -e 'print join ", ", localtime, "\n"'
23, 15, 21, 23, 7, 105, 2, 234, 1, 

example$ perl -e 'printf("%04d/%02d/%02d\n", sub{$_[5], $_[4], $_[3]}->(2, 16, 21, 23, 7, 105, 2, 234, 1))'
0105/07/23

example$ perl -e 'printf("%04d/%02d/%02d\n", sub{$_[5]+1900, $_[4]+1, $_[3]}->(2, 16, 21, 23, 7, 105, 2, 234, 1))'
2005/08/23

example$ perl -e 'printf("%04d/%02d/%02d\n", sub{$_[5]+1900, $_[4]+1, $_[3]}->(localtime))'
2005/08/23

example$ perl -e 'printf("%04d%02d%02d\n", sub{$_[5]+1900, $_[4]+1, $_[3]}->(localtime))'
20050823

Roger
Roger Hall
COMPUSPEC
Google
 
Web Compuspec.net
Valid XHTML 1.0!
Valid CSS!