web-dev-qa-db-ja.com

automakeエラー:正規表現のエスケープされていない左中括弧は廃止されました

GNU automake 1.15をコンパイルしてインストールした後、automakeを実行するたびにこのエラーが発生します。

正規表現でエスケープされていない左中括弧は廃止され、正規表現で渡されます。

<-ここにm/\ $ {でマークされた<-ここ([^\t =:+ {}] +)} /

/ usr/local/bin/automake行3936に

私はPerl v5.22.0を持っています

5
ISlimani

サポート終了の警告は、それ自体では問題ではありません。

Perl 5.21.1リリースノート は以下を示します。

正規表現パターンでリテラルの左中かっこ(左中かっこ)が必要な場合は、バックスラッシュ( "\ {")を前に付けるか、角かっこ "[{]"で囲むことでエスケープする必要があります。 、または\ Qを使用します。それ以外の場合は、非推奨の警告が発生します。これはv5.16のリリースで最初に発表されました。言語の将来の拡張が可能になります。

古いバージョンのPerlとの互換性を維持したい場合もありますが、Automakeの作成者に このバグを報告 することができます。

5
lfaraone

私が誤ってbashでechoの代わりに 'print'を使用していたため、このエラーが発生しました。

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
0
Sergio Abreu