Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: Or Operator

by fruiture (Curate)
on Jul 30, 2004 at 23:04 UTC ( [id://378829]=note: print w/replies, xml ) Need Help??


in reply to Or Operator

The magic term is "operator precedence", it determines the order of execution or your atomic expressions.

A = B or C; # as "=" has higher precedence than "or" it binds it's # arguments "tighter", so this is equivalent to (A = B) or C; # so your expression is a disjunction # which executes the left operand (A = B) # being an assignment, which returns B in the end # and if that's false, the disjunction (or) # returns C, which is irrelevant, because that's in void # context # but you want A = (B or C) # because that's an assignment, an assignment # evaluates the right operand first (B or C) # which itself is a disjunction again and works as described # above, returning B if true, otherwise C # and that is then assigned to A, which must be an lvalue # that means in Perl my $page = ( $cgi->param("page") or "login" ); # or by using the high-precedence-OR "||" my $page = $cgi->param("page") || "login"; # because "||" has higher precedence than "="

see perlop

--
http://fruiture.de

Replies are listed 'Best First'.
Re^2: Or Operator
by rjahrman (Scribe) on Jul 30, 2004 at 23:47 UTC
    I have another similar line:
    $ftp = Net::FTP->new("ftp.$dom", Debug => 0) or $loginerror = "Error message.";

    Should this work like I think it does?

      If you think it will set $ftp to the result of the new method call, and if that was false set $longin error, it will.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://378829]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (4)
As of 2024-04-18 18:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found