http://www.perlmonks.org?node_id=544740


in reply to Checking if a given date falls between 2 other specific dates

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.