sub days_in_month { my ( $month, $year ) = @_; my @days_in_month = qw/ 31 28 31 30 31 30 31 31 30 31 30 31 /; if ( $month == 1 ) { return 29 if is_leap_year( $year ); } return $days_in_month[ $month ]; } sub is_leap_year { my $year = shift; return ( 0 == $year % 4 and 0 != $year % 100 or 0 == $year % 400 ) ? 1 : 0; }