sub day_dir { my($day, $month, $year) = (localtime(shift || time))[3,4,5]; my $code = sprintf('%04X', (((138 - $year) & 31) << 9) + (((11 - $month) & 15) << 5) + ((31 - $day) & 31) ); $code =~ tr/0-9A-F/A-P/; return sprintf('%s-%04u-%02u-%02u', $code, $year + 1900, $month + 1, $day); }