[解決済み] Perlスクリプトにコンパイルエラーがないことを確認する方法は?
質問
Bashスクリプトの中で多くのPerlスクリプトを呼び出しています(cshからも呼び出すことがあります)。
Bashスクリプトの最初に、すべてのPerlスクリプトにコンパイルエラーがないかどうかをチェックするテストを置きたいと思います。
これを実現する一つの方法は、Bashスクリプトから実際にPerlスクリプトを呼び出すことである。
grep
しかし、Perlスクリプトがコード内の異なる位置で呼び出されるため、この処理は面倒になります。
Perl スクリプトにコンパイルエラーがないかどうか確認する方法はありますか?
どのように解決するのですか?
ご注意ください!
Perlプログラムのコンパイルエラーを確認するために以下のコマンドを使用すると、危険な場合があります。
$ perl -c yourperlprogram
このトピックについては、Randalが非常に素晴らしい記事を書いているので、ぜひご覧ください。
- Perlコードのサニティチェック (Linuxマガジンコラム91, 2007年3月)
彼の記事から引用します。
おそらく、最もシンプルに判断できるのは、「有効かどうか」でしょう。これには perlを起動し、compile-onlyスイッチを渡します。
perl -c ourprogram
この操作のために、perlはプログラムをコンパイルします。 が、実行段階の手前で止まっています。つまり、すべての プログラムテキストの一部は、内部データ の構造体であり、作業プログラムである。 を実行します。もし構文エラーがあれば、その旨が表示され を実行すると、コンパイルが中断される。
実は、これはちょっとウソなんです。BEGINブロック(を含む)のおかげで そのレイヤーオンの従兄弟である use ディレクティブ)、いくつかの Perl コードは は、この理論的には安全な "シンタックスチェック" の間に実行されました。例えば 例えば、あなたのコードに
BEGIN { warn "Hello, world!\n" }
というメッセージが表示されます。 perl -c のときでさえも! これは、次のような人々にとってやや驚くべきことです。 というのは、quot;コンパイルのみ"は、quot;コードを実行しない"という意味だと考えているからです。例えば を含むコードです。
BEGIN { system "rm", "-rf", "/" }
の問題点がわかると思います。 という引数があります。おっとっと。
関連
-
リリカルスコープ、ダイナミックスコープ、コールバック、クロージャを一挙紹介
-
Perl6 のガベージコレクション
-
Perlグラフィカルパッケージ管理ツール PPMラーニングノート
-
Perl の読み書きファイルの簡単な例
-
ip138.com のスクリプトで、perl で ip 属性を照会する。
-
Gmailの添付ファイルをPerlで一括ダウンロードするコード
-
Perlクラスタ構成管理システムRexコンサイスマニュアル
-
Perl で QR コード用のプレーン HTML コードを生成する例
-
[解決済み] Perlからロケール設定の警告を修正する方法
-
[解決済み] 最近のPerlはなぜデフォルトでUTF-8を避けるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Perl uc,lc,ucfirst,lcfirst 大文字・小文字変換関数群
-
Perlでは ->;, =>;, :: という記号はどういう意味ですか?
-
Perl学習チュートリアル - シングルラインコマンドの説明
-
Perlで配列から値を削除する方法は?
-
Perlは先頭と末尾の空白を削除します(左右の空白文字、空白文字を削除します)。
-
Windowsにperlとkomodo IDEをインストールする詳細な手順
-
Perl バッチクエリ ip 属性メソッドコード
-
Perl の Getopt::Long モジュールを使用して、ユーザーのコマンドライン引数を受け取ります。
-
Perlのファイルハンドルの説明
-
長さを指定し、ランダムなDNA配列を生成するperlスクリプトコード