You are right, the functionality is identical in the cases
you cite. But || comes with a *lot* of caveats when you
use it in circumstances like this. The RHS of or
will
always be executed last (unless parentheses
are used, or there is more than one or). This means
if you want to say (psuedo-code):
if (open fails) { die }
or gives you a way of writing literally that. || means
something a bit different, and can cause considerable
confusion. It's a bad habit and a maintainance problem
to use the wrong operator for the job. See
perlop.
Andrew.