Как написать perl один вкладыш в Make? - PullRequest
2 голосов
/ 28 июня 2011

Я пишу следующую команду для извлечения текста в make-файле: -

@awk '/Exported Layer/,/Total Polygons/' out_compare.err | perl -lane '$el=$F[3] if(/Exported Layer/); print "$el: $f[3]" if (/Total Polygons/);' | cat

Но выдает следующую ошибку: -

Невозможно изменить постоянный элемент в скалярном присваиваниив -e строка 1, рядом с "] if" Выполнение -e прервано из-за ошибок компиляции.

Не могли бы вы что-нибудь предложить?: -)

1 Ответ

5 голосов
/ 28 июня 2011

Make игнорирует кавычки оболочки в командах, поэтому символы $ в вашем фрагменте Perl интерпретируются как переменные make $e и $F.Эти переменные не существуют в вашем make-файле и расширяются как пустые, что приводит к синтаксическим ошибкам Perl, которые вы видите.

Вам нужно экранировать символы $ от make следующим образом:

... perl -lane '$$el=$$F[3] if(/Exported Layer/); ...

См. Также Руководство по эксплуатации GNU .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...