Нет, это как раз и описывает приоритет операторов. И использование
or
вместо
||
помогает не потому, что у
or
приоритет ниже, чем у
||
(хотя это так), а потому он ниже, чем у запятой (
,
), в то время как у
||
— выше, чем у запятой.
Скобки синтаксически к операторам не относятся; парсер, работающий с таблицей приоритетов операторов, по сути, как раз расставляет скобки в выражении. А в данном случае, как я понимаю, это еще и не скобки, а и впрямь вызов функции (Perl не знаю, к сожалению). Но в любом случае, скобки в данном превращают левое выражение в неделимый атом и парсер уже никак не вытащит из него
"$file"
и не отнесет его к
||
. Кстати, наверное, возможен еще один вариант?
(open FILE, "$file") || die "Can't open: $! \n";