2 minor comments on your code
if ($d2 >= $1) {
i guess $1 is a typo.
print "\n $d2 is greater or equal to $d1\n";
your print statements are equal.
one recommended module on CPAN is DateTime
from the
DateTime docs:
DateTime->compare( $dt1, $dt2 )
Compare two DateTime objects. The semantics are compatible with Perl's sort() function; it returns -1 if $d1 < $d2, 0 if $d1 == $d2, 1 if $d1 > $d2.
use strict;
use warnings;
use feature 'say';
use DateTime;
my $d1 = DateTime->new(
year => 2019,
month => 8,
day => 1,
time_zone => 'America/Chicago',
);
my $d2 = DateTime->new(
year => 2019,
month => 6,
day => 8,
time_zone => 'America/Chicago',
);
say DateTime->compare( $d1, $d2 )
say DateTime->compare( $d1, $d2 ) > 0
? $d1->ymd .' is greater than ' . $d2->ymd
: $d2->ymd .' is greater or equal to ' . $d1->ymd;
update:
sorry, my fault <no excuse>