my @days = ( [ qw(31 28 31 30 31 30 31 31 30 31 30 31) ], # non-leap [ qw(31 29 31 30 31 30 31 31 30 31 30 31) ] # leap ) #### sub leap { my $y = shift; return ($y % 4 == 0 && $y % 100 != 0) || $y % 400 == 0; } #### my $leap = leap($y); ... $days[$leap][$m]
## sub leap { my $y = shift; return ($y % 4 == 0 && $y % 100 != 0) || $y % 400 == 0; } ##
## my $leap = leap($y); ... $days[$leap][$m]