#!/usr/bin/perl use 5.018; use strict; # NOT because it makes a difference here, but because it will # (OFTEN!) point out typos and other mistakes use warnings; # 1119420 (my $time) = scalar localtime(); say "\t DEBUG \$time: |$time|"; # the vbars in the printout will help you spot # mismatches between your expectations & # the actual regex captures $time =~ /\s([A-Z]{3})/i; # you don't want to capture the preceding space; the other my $month = $1; # changes are merely for laziness (compactness) and say "\t DEBUG \$month: |$month|"; # rely on the fact that all localtime() months # are just 3 chars $time =~ /\s(\d+)\s/; my $day = $1; say "\t DEBUG \$day: |$day|"; say "\t ", $month, " " ,$day; # when printing to console, I find output with # leading tabs makes the output more legible. YMMV. if ( $month eq 'Mar' ){ # reformatting makes (again, YMMV) the reading easier. print "\t true\n"; } else { print "\t false\n";} if ( $day =~ m{\d+} ) { # regex instead of == to accomodate days_of_month 10 say "\t true"; # thru 31 but, would, of course accept "47" as a } else { # day_of_month so would be a baaad idea for some # origins of day_of_month. say "\t false"; }