in reply to A quick date swap from a string

#!/usr/bin/perl use strict; use warnings; my @month_name = qw/ january february march april may june july august september /; my $month = {}; for ( 0 .. $#month_name ) { $month_name[$_] =~ s/(\w{3})(\w*)/$1(?:$2)?/; $month->{qr/$month_name[$_]/} = $_ + 1; } sub month_to_num { my $date = shift; for ( keys %$month ) { last if $date =~ s/$_/$month->{$_}/; } return $date; } printf "%02s %02d %4d\n", split /\s+/, month_to_num($_) for ( 'dec 7 2008', 'may 25 2003', 'march 01 1897' ); # Output: # dec 07 2008 # 05 25 2003 # 03 01 1897


hth,
PooLpi

'Ebry haffa hoe hab im tik a bush'. Jamaican proverb

Replies are listed 'Best First'.