On 12/19/07, Chas. Owens <[EMAIL PROTECTED]> wrote:

> On Dec 19, 2007 2:29 AM, Ravindra Ugaji <[EMAIL PROTECTED]> wrote:

> > chdir ( '/opt/application') || die ("Can't change directory: $!\n");
> > tried this also
> > chdir "/opt/application" || die "Can't change directory: $!\n";

> In addition to what others have already said, never do the second*.
> The || operator has a higher precedence than function calls, so
>
> func "string" || die "oops";
>
> is really saying
>
> func("string" || die("oops"));
>
> Since "string" is truthy, the die will never occur.

You have the right idea about functions in general; but chdir() is a
"named unary operator", so it has higher precedence than the ||
operator:

  chdir "/any/wrong/path" || die "This will indeed die: $!";

That means that the OP's code isn't so wrong as it may seem, even
though there's surely a better way to write it.

Cheers!

--Tom Phoenix
Stonehenge Perl Training

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to