On 4/17/09 Fri  Apr 17, 2009  1:50 PM, "Brian" <brian5432...@yahoo.co.uk>
scribbled:

> Brian wrote:
> 
> oops, should read......
> 
>   $Year_out = $Year_in;
> 
>       while ($Year_out > 100) {$Year_out -= 100;}
>           if (($Year_out > 00) && ($Year_out <= 25)) {$string = $string1;}
>           if (($Year_out > 25) && ($Year_out <= 50)) {$Year_out -=
>   25;$string = $string2;}
>           if (($Year_out > 50) && ($Year_out <= 75)) {$Year_out -=
>   50;$string = $string3;}
>           if (($Year_out > 75) && ($Year_out <= 100)) {$Year_out -=
>   75;$string = $string4;}

You are doing quite a few redundant tests here. Note that after your while
loop, $Year_out cannot be greater than 100. Also, if $Year_out is greater
than 25, it must be greater than 0. In addition, when you are done,
$Year_out will be between 0 and 25. Therefore, you can take the value modulo
25 and rearrange the tests to be a little more efficient (I am assuming that
$Year_out is always >= zero):

    while ( $Year_out > 100 ) {
        $Year_out -= 100;
    }
    if ( $Year_out > 75 ) {
        $string = $string4;
    }elsif ( $Year_out > 50 {
        $string = $string3;
    }elsif ( $Year_out > 25 ) {
        $string = $string2;
    }elsif ( $Year_out > 0 ) {
        $string = $string1;
    }
    $Year_out = $Year_out % 25;



-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to