# use map where possible to create hashes where there # is a clear relationship between the key and value pairs my %month_to_num = # hash from map map { my $prefix = ($_ < 9) ? "0" : ""; $_ => $prefix . ($_ + 1) } ( 0 .. 11 ); # use fat comma to make code more readable my %month_to_name = ( 0 => 'Jan', 1 => 'Feb', 2 => 'Mar', 3 => 'Apr', 4 => 'May', 5 => 'Jun', 6 => 'Jul', 7 => 'Aug', 8 => 'Sep', 9 => 'Oct', 10 => 'Nov', 11 => 'Dec' ); # this subroutine could be made much simpler sub pad_with_zeroes { my ($value, $pad_length) = @_; my $pad = "0" x ($pad_length - length($value)); $pad . $value; } # avoid meaningless comments # -------------------------- # e.g. # # Variable declarations # # and later # --------- # # Load the values and do the work # in my opinion this creates noise and does not aid readability # Refer to Chapter 7 of Perl Best Practices and use POD