sub num_month { my $date_line = shift; #like jan 12 2009 or january 12 2009 my %months = (JAN => '01', FEB => '02', MAR => '03', APR => '04', MAY=> '05', JUN => '06', JUL => '07', AUG => '08', SEP => '09', OCT => '10', NOV => '11', DEC => '12', JANUARY => '01, ....etc.....); my (@tokens) = split (/\s+/, uc($date_line)); foreach my $token (@tokens) { return ($months{$token} if $months{$token}); } die "no month in @tokens"; ## optional but you may want this }