use POSIX; sub timenow_is_between { my ( $bgn, $end ) = @_; # args are "HH:MM" strings (length==5) # e.g. 20:30 or 07:00 my $timenow = strftime( "%H:%M", localtime ); if ( $bgn ge $end ) { return ( $timenow ge $bgn or $timenow lt $end ); } else { return ( $timenow ge $bgn and $timenow lt $end ); } } #### if ( timenow_is_between( "20:30", "07:00" ) { print "this program is running at night\n"; } else { print "it is not night time right now\n"; }