Назад | Перейти на главную страницу

Ошибка automake: неэкранированная левая фигурная скобка в регулярном выражении устарела

После компиляции и установки GNU automake 1.15 я получаю эту ошибку всякий раз, когда запускаю automake:

Неэкранированная левая фигурная скобка в регулярном выражении устарела, передается в регулярном выражении;

отмечены <- ЗДЕСЬ в m / \ $ {<- ЗДЕСЬ ([^ \ t =: + {}] +)} /

в / usr / local / bin / automake, строка 3936

У меня perl v5.22.0

Предупреждение об устаревании не является проблемой само по себе.

В Заметки о выпуске Perl 5.21.1 указать:

Если вам нужна буквальная левая фигурная скобка (также называемая левой фигурной скобкой) в шаблоне регулярного выражения, вы должны теперь избежать ее, поставив перед ней обратную косую черту ("\ {") или заключив ее в квадратные скобки "[{]" , или используя \ Q; в противном случае будет выдано предупреждение об устаревании. Впервые об этом было объявлено в выпуске v5.16; это позволит будущим расширениям языка произойти.

Ты мог сообщить об этой ошибке авторам Automake, хотя они могут захотеть сохранить совместимость со старыми версиями Perl.

Я получил эту ошибку только потому, что по ошибке использовал print вместо echo в bash:

print "abcd123" | perl -e 'myscript'  #causes error

Решением было использовать эхо, я просто перепутал печать / эхо, смешивая языки

echo "abcd123" | perl -e 'myscript'  #is fine
printf "abcd123" | perl -e 'myscript'  #is fine too, "printf" not print