Submit Your Site For Free!

Email Address:
* URL:
*
*Indicates Mandatory Field

Terms & Conditions

Dev Newz
FlashNewz
DevWebPro










Perl Binding,

By A.P. Lawrence
Expert Author
Article Date: 2005-10-25

Perl has "||" and "or". While "or" can't be used in bit operations, either one can be used in logical flow control - but there is an important difference between them.

For example, this code doesn't work properly:

#!/usr/bin/perl
open FILE, "$file" || die "Can't open: $! n";
print "$file open";


If "$file" doesn't exist, you won't get the "Can't open" message. The problem is that the "||" binds tightly and confuses the "open" function. You need to either do:

open FILE, "$file" or die "Can't open: $! n";

(because or binds less tightly than ||) or

open(FILE, "$file") || die "Can't open: $! n";

(because the parens contain the open function)

Generally speaking it's a very good idea for new Perl folk to use "or" rather than "||" in conditional flow tests, and to use parens for functions. So (following both rules), I'd recommend getting used to writing that like this:

open(FILE, "$file") or die "Can't open: $! n";

at least until you are very clear on what each of these does.

*Originally published at APLawrence.com

About the Author:
A.P. Lawrence provides SCO Unix and Linux consulting services http://www.pcunix.com




Newsletter Archive | Article Archive | Submit Article | Advertising Information | About Us | Contact

Dev Newz is an iEntry, Inc.® publication - 1998-2008 All Rights Reserved Privacy Policy and Legal