You did not specify what format your dates are in. But no
matter, DateTime can handle most date/time functions.
use strict;
use warnings;
use DateTime;
use DateTime::Span;
use Datetime::Format::ISO8601;
my $iso8601 = DateTime::Format::ISO8601->new;
while (<DATA>) {
my ( $first, $last ) = split('\|');
chomp $last;
my $dt_set = DateTime::Span->from_datetimes(
start => $iso8601->parse_datetime($first),
before => $iso8601->parse_datetime($last),
);
if ( $dt_set->contains( DateTime->now() ) ) {
print "Within date range\n";
}
else {
print "Not within date range\n";
}
}
__DATA__
1998-02-14|1998-03-01
2006-04-10|2006-06-01
I hope this helps.