perl -wMstrict -e "my @months = (qw(jan feb mar apr may jun jul aug sep oct nov dec)); my $i = 1; my %month_num = map { $_ => $i++ } @months; my $month_re = join '|', @months; print qq(o/p: \n); for (@ARGV) { print qq( $_: ); s/($month_re)\w+/$month_num{$1} || $1/ei; print qq($_ \n) }" jan JaN january jane o/p: jan: jan JaN: JaN january: 1 jane: 1