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:

Not really.  More like

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

Although it is not necessary the meaning might be better expressed:
my $n = (@$a > @$b ? @$a : @$b)

The hierarchy of operator precedence obviates the need for parenteses here, though.  
Refer to
perldoc perlop
for the full table, but the relative hierarchy among the operators shown above is:

>     comparison    first
? :   conditional   next
=     assignment    last

Joseph


-- 
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