Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Re: Re: Image::Magick resize question

by mt2k (Hermit)
on Jun 08, 2002 at 22:32 UTC ( [id://172852]=note: print w/replies, xml ) Need Help??


in reply to Re: Re: Image::Magick resize question
in thread Image::Magick resize question

Just a question on the notation used for the return value for Image::Magick::Read. I understand from merlyn's post that the Read function does not return a result in the error variable ($!).

Let's just pretend that it did return a value (even though it doesn't). Even then, wouldn't the line

$image->Read(file=>\*IMAGE) || die "Unable to read image: $!";

be better written as

$image->Read(file=>\*IMAGE) or die "Unable to read image: $!";

The difference being using or instead of ||. Not that it will do anything in this case, but when checking for return values in $!, is one not always suppose to use the "or" operator rather than "||"? I believe I was once told that using "or" (since it has a higher precedence) is always preferred when dealing with this type of situation. Did I hear wrong or am I right? Or does it depend upon the type of function called?

Replies are listed 'Best First'.
or vs || precedence issue
by Aristotle (Chancellor) on Jun 08, 2002 at 22:51 UTC
    my $y = int rand 10 or die; This will work correctly since or binds losely. 10 is regarded as a parameter to rand which is regarded as a parameter to int; the result will be tested with or and die 1 out of 10 times. my $y = int rand 10 || die; This will never die since || binds tightly and causes 10 || die to be evaluated first. The result of that expression is then passed to rand as a parameter, and so on.

    Sometimes, very rarely, you actually want the tight binding rather than the lose, however.

    Makeshifts last the longest.

      Cool! I was quite unaware of the difference between || and or. If it makes that much of a difference, I'll start using or in place of || when checking return errors. Thanks for the reply, the information was very useful.

        Nononono. Not everywhere. Everywhere it belongs. Neither one is "the right one". Please take the time to understand exactly why they each work the way they do.

        Here's a hint: everything you can do with the one, you can also do with the other, as long as parens regulate precedence.

        Makeshifts last the longest.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (4)
As of 2024-04-24 07:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found