Perl пропускает мой DWIM (тройной ?:
) и заставляет регулярное выражение.Почему perl parses regex
perl -e "print $bool ?'T' :'F'"
Use of ?PATTERN? without explicit operator is deprecated at -e line 1.
Search pattern not terminated or ternary operator parsed as search pattern at -e
line 1.
Почему это так? Эти два примера правильно разобран тройной оператор,
perl -e "print $bool ? 'T' :'F'"
perl -e "print [] ?'T' :'F'"
Это на окнах, но почти то же самое на * NIX
perl -e 'print $bool ?"T" :"F"'
так это не выглядит как оболочки связаны между собой.
Похоже, что одно из этих раздумий в Perl, возникающее из обратной совместимости. Ввод «использования шаблона без явного оператора» в Google дает много результатов, все одинаково не связанные с сопоставлением шаблонов. И тот факт, что одно пространство делает разницу между ошибкой и ошибкой, просто yuk! – sundar