Perl binding, or vs. ||by: Tony LawrencePerl binding 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 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. © 2008 NetVisits, Inc. All rights reserved. |