I like Class::Date instead of Date::Calc for this kind of simple date math (where sql statements can't be used).
use Class::Date qw/ date localdate now /;
my $cmpday = date( date( '2001-11-9' ) + '1M' + '20D' ); # add 1 month
+, 20 days
my $today = date( localdate( now ))->truncate; # truncate makes time
+midnight.
if ( $cmpday == $today ){
print "Today is $cmpday.\n";
}
else {
print +( Class::Date->new( $today ) - $cmpday )->day, " days away.
+\n";
}
Date::Calc is definitely faster, so if you're needing lots of speedy date calcs, stick with Date::Calc. Docs for Class::Date is here.