Andrew Gaffney wrote:
> 
> Perl wrote:
> > I am trying to understand how this works. For example:
> >
> > my $n = @$a > @$b ? @$a : @$b;
> >
> > I understand this is a conditional statement I am just not sure what is
> > being compared with ? and :.
> 
> I believe that the above just assigns a true or false (1 or 0) to $n. The
> statement is the same as:
> 
> if(@$a > @$b) {
>    $n = (@$a > @$a); # $n = 0 because @$a is not greater than itself
> } else {
>    $n = (@$a > @$b); # $n could be 1 or 0 depending on the values of @$a and @$b
> }

Wrong.

> I believe what you meant to do is:
> 
> my $n = (@$a > @$b) ? @$a : @$b;

The parentheses are not required.

$ perl -le'
$a = [ 2,3,4,5 ]; $b = [ @$a, 6,7 ];                      
print @$a . " " . @$b;
$n = @$a > @$b ? @$a : @$b; print $n;
( $a, $b ) = ( $b, $a );             
print @$a . " " . @$b;               
$n = @$a > @$b ? @$a : @$b; print $n;
'
4 6
6
6 4
6



John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to