use Date::Tie; tie my %date, 'Date::Tie'; $date{monthday} = 1; $date{monthday}--; print "$date{year}-$date{month}-$date{monthday}\n";