If you can be sure that slashes will be the delimiters, slit on them
and then add a '0' if the first two elements are less than 10:
my $date_str = "9/9/1973";
my @date_arr = split("/", $date_str);
for my $i (0 .. 1) {
$date_arr{$i} = $date_arr{$i} < 10 ? $date_arr{$i} : "0$date_arr{$i};
}
$date_str = join("/", @date_arr);
Sort of long to type but that would get the job done IMHO.
--
Robert G. Werner
[EMAIL PROTECTED]
2001/9/11
"Get back to your stations!"
"We're beaming down to the planet, sir."
-- Kirk and Mr. Leslie, "This Side of Paradise",
stardate 3417.3
On Thu, 31 Jan 2002, Pradeep Sethi wrote:
> Thanks but I am looking of any regexp substitution.
>
> sorry for typo : I need to change 9/9/1973 to 09/09/1973
>
>
>
> Thanks
>
>
> Prad
>
>
> > -----Original Message-----
> > From: Bill -OSX- Jones [mailto:[EMAIL PROTECTED]]
> > Sent: Thursday, January 31, 2002 5:31 PM
> > To: [EMAIL PROTECTED]
> > Subject: Re: substitution question
> >
> >
> > Greetings, On Thursday, January 31, 2002, at 08:17 PM, Pradeep
> > Sethi wrote:
> >
> > > Hi All,
> > >
> > > I want to change date 9/9/1987 to 09/09/1973
> >
> > You want to change 1987 to 1973 ?
> >
> > > was wondering, what is the most efficient way ?
> >
> > # Assuming:
> > my ($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime;
> >
> > # Then -
> > my $vdate = sprintf("%02d", $mon + 1) . '/' . sprintf("%02d", $mday);
> > $vdate .= '/' . ($year += 1900);
> >
> > print $vdate; # prints 01/31/2002 or say 01/01/2002
> >
> > and so on for whichever combinations of month/day/year...
> >
> > Or a basic program example:
> > http://cpan.valueclick.com/authors/id/S/SN/SNEEX/msg_log.perl_v8s
> >
> >
> > No, I am not ignoring the 'efficient' part, but felt this was good
> > starting spot;
> > HTH/Sx :]
> >
>