perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Philippe M. Chiasson" <go...@ectoplasm.org>
Subject Re: -Wdeclaration-after-statement Final version
Date Tue, 23 Aug 2005 21:47:39 GMT
Philip M. Gollucci wrote:
> Philippe M. Chiasson wrote:
> 
>> Isn't "return;" the more canonical way of returning false ?
> 
> Beats me... I know a lot of the mp2 code particular Apache2::Status as I
> was just digging in there uses return 0.  I really have no preference.

Just looked around the existing code, and yes, you are right, return 0 is
used all over to represent failure, so I guess it's better to be consistent.
>> Minor nit, but wouldn't
>>
>> my @tuples = split /\./, $has_version;
>> my @r_tuples = split /\./, $requested_version;
>>
>> return cmp_tuples(\@tuples, \@r_tuples) == 1;
>>
>> sub cmp_tuples {
>>     my ($a, $b) = @_;
>>
>>     while(@$a && @$b) {
>>         my $cmp = shift @$a <=> shift @$b;
>>         return $cmp if $cmp;
>>     }
>>     return @$a <=> @$b;
>> }
>>
>> Be a more generic approach that would also work if there is ever a
>> gcc-4.0.0.1 and could possibly be used to refactor some more version
>> comparaisons ?
> 
> More generic yes.  But working no. :)
> 
> <=> returns 1, 0, -1, and undef for NaN.
> both 1 and -1 are true in perl.

That was by design, to keep the behaviour of <=> or cmp

> That should be
>>         return $cmp if $cmp;
> return 1 if $cmp == 1;
> 
> Whith that minor change, I agree.

You must have missed this bit:

return cmp_tuples(\@tuples, \@r_tuples) == 1;

Where I specifically check that @tuples is greater than @r_tuples.

Figured this cmp_tuples() migth also be used to check if something
is less than something else.

--------------------------------------------------------------------------------
Philippe M. Chiasson m/gozer\@(apache|cpan|ectoplasm)\.org/ GPG KeyID : 88C3A5A5
http://gozer.ectoplasm.org/     F9BF E0C2 480E 7680 1AE5 3631 CB32 A107 88C3A5A5

Mime
View raw message