注意してください!!
以下のコマンドを使用して Perl プログラムのコンパイル エラーをチェックするのは危険です。
$ perl -c yourperlprogram
Randal は、このトピックに関する非常に優れた記事を書いています。ぜひチェックしてください。
彼の記事からの引用:
おそらく、私たちが言える最も簡単なことは、「それは有効ですか?」ということです。このために、コンパイルのみのスイッチを渡して、perl 自体を呼び出します。
perl -c ourprogram
この操作では、perl はプログラムをコンパイルしますが、実行フェーズの直前で停止します。これは、プログラム テキストのすべての部分が、作業中のプログラムを表す内部データ構造に変換されることを意味しますが、実際にはコードを実行していません。構文エラーがある場合は通知され、コンパイルは中止されます。
実際、それは少し嘘です。BEGIN ブロック (階層化された従兄弟である use ディレクティブを含む) のおかげで、この理論的に安全な「構文チェック」中に一部の Perl コードが実行された可能性があります。たとえば、コードに次のものが含まれているとします。
BEGIN { warn "Hello, world!\n" }
その後、perl -c! の実行中であっても、そのメッセージが表示されます。これは、「コンパイルのみ」を「コードを実行しない」と考えている人にとっては驚くべきことです。以下を含むコードを検討してください。
BEGIN { system "rm", "-rf", "/" }
そして、その議論に問題があることがわかります。おっとっと。