my $date = $ARGV[0] || yesterday(); sub yesterday { my ($yr,$mo,$day) = (localtime( time - 86400 ))[5,4,3]; return sprintf "%04d%02d%02d",1900+$yr,1+$mo,$day; }