http://www.perlmonks.org?node_id=102824

ybiC has asked for the wisdom of the Perl Monks concerning the following question:

I'm helping a serverdude with a logfile summarization script.   Since the script will run daily, he'd like the output file to be named for the date in format yyyymmdd (with month and day leading-zero padded as needed).

The following snippet with localtime() and printf() are a start.   But there's clearly something I'm overlooking or misunderstand.   Suggestions for a Better Way To Do It?
    thanks,
    Don
    striving toward Perl Adept
    (it's pronounced "why-bick")

#!/usr/bin/perl -w use strict; my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(t +ime); printf ("%04d%02d%02d",$year+1900,$mon+1,$mday); print "\n\n"; # result is 20010807 # good; exactly what was expected my $ymd = printf("%04d%02d%02d",$year+1900,$mon+1,$mday); print "$ymd"; print "\n\n"; # result is 200108071 # why the appended 1 ?? my $outfile = "$ymd.summary"; print "$outfile"; print "\n\n"; # result is 1.summary # ????