Re: Y2K Again ??

Josh Goldberg <[email protected]>
Newsgroups gmane.comp.lang.perl.fun
Message-ID <[email protected]>
$Yr = ($FieldA =~ /^(\d{2}).*/ and $1 > 20 ? 19 : 20).$1;

On May 14, 2004, at 8:25 AM, Rick Klement wrote:

> Brian Morgan wrote:
>>
>> Good evening everybody,
>> I have been working on a small database project and have come across
>> the
>> need to move some data from table A to table B, the year format in
>> table
>> A is \d{2}\D{8} and in table B \d{4}\D{8}
>>
>> Since the records in table A range from 1970 - 2004.  I want to be
>> able
>> look at the date, and determine if it is a 2000 or 1900 date and make
>> the appropiate date change.
>>
>> So here is my sollution (long):
>> #Pull the value out of the field
>> #For this example I don't care about the rest of FieldA I just want
>> the
>> 1st 2 digits,
>> #but I need to preserve FieldA for later use in the program.
>>
>> ($Yr = $FieldA) =~ s/^(\d{2}).*/$1/;
>> if($Yr > 20){
>>     $Yr = "19$Yr";
>> }else{
>>     $Yr = "20$Yr";
>> }
>>
>> #Concat year to FieldB
>>
>> I guess I am looking for a way to combine a substitution with the if
>> statement but haven't come up with a working solution.
>>
>> Anyways, I am looking forward to see what the outcome is.
>>
>> Brian
>
> There is no need for a regex
>
> 	$Yr = ($FieldA > 20 ? 1900 : 2000) + $FieldA;
>
> Or just get $FieldB directly if you don't need a separate $Yr
>
> 	$FieldB = ($FieldA < 21) + 19 . $FieldA;
>
> --
> Rick Klement
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.