in reply to Re^5: Loading all files in a dir with use via for loop
in thread Loading all files in a dir with use via for loop

That does work because of the super-low-precedence of 'or'.Actually, it doesn't work. The if wants to evaluate all of the following expression. It's not very readable, thougheither.: someone who doesn't understand the lower-precedence-ness of 'or' (compared to '||', especially). To them it would look like you shouldIt will try to eval $PAGE if one of the two or statements is true. Also, you don't need to specify main-> for nopageerror.

For clarity, I suggest one of these:

# whoops, syntax errors, thanks to Roy Johnson ## ( eval "$PAGE" if main->can($PAGE) ) or nopageerror; ## or... #( eval "$PAGE" if main->can($PAGE) ) # or nopageerror; ## or... if ( main->can($PAGE) ) { eval $PAGE } else { nopageerror }

Updates:

<-radiant.matrix->
Larry Wall is Yoda: there is no try{} (ok, except in Perl6; way to ruin a joke, Larry! ;P)
The Code that can be seen is not the true Code
"In any sufficiently large group of people, most are idiots" - Kaa's Law

Replies are listed 'Best First'.
Re^7: Loading all files in a dir with use via for loop
by Roy Johnson (Monsignor) on Sep 29, 2005 at 20:33 UTC
    predicate-if is not an operator, it is a statement modifier. It is not part of an expression, so you can't parenthesize it. Your first suggestion is a syntax error.

    Caution: Contents may have been coded under pressure.
Re^7: Loading all files in a dir with use via for loop
by Delusional (Beadle) on Sep 30, 2005 at 13:02 UTC
    You are correct radiant.matrix. I'm always forgetting the ||/or methods. Simularily I confuse the eq and = and == thus causing scripting errors.... The simplest things are generally the easiest to over look and cause the most problems.