厳密な構文チェックと詳細な警告出力を行う

Perl でプログラムを作成するときに「use strict」と「use warnings」を記述しておくと厳密な構文チェックとより詳細な警告を表示してくれるようになります。ここでは Perl のプログラムで厳密な構文チェックと詳細な警告出力を行う方法について解説します。

(Last modified: )

詳細な警告を出力する

プログラムに use warnings を記述するとより詳細な警告を出力してくれます。

use warnings;

簡単な例で試してみます。まずは use warnings を記述しない場合です。

$num = 10;
print $nun;

上記のプログラムを実行すると実行結果は次のようになります。

詳細な警告を出力する(1)

何も出力されませんでした。これは変数 $num の値を出力しようとしたのに間違って変数 $nun の値を出力しようとした為です。これは記述ミスなのですが Perl では何事もないように実行してしまいます。

use warnings を記述するとこのような場合に警告が表示されるようになります。先ほどの例を次のように書き換えてください。

use warnings;

$num = 10;
print $nun;

上記のプログラムを実行すると実行結果は次のようになります。

詳細な警告を出力する(2)

今度は 3 つの行が表示されています。これは変数 $num が一度しか使われていないこと、変数 $nun が一度しか使われていないこと、そして初期化されていない値を使用しようとしていることを警告してくれています。このように警告を表示することで、プログラムミスを発見するのに役立ちます。

厳密な構文チェックを行う

プログラムに use strict を記述するとより厳密に Perl の文法をチェックしてくれるようになります。例えば変数を利用する前に宣言を行わなければならなくなります。

use strict;

簡単な例で試してみます。まず最初に use strict; を記述せず試してみます。

use warnings;

$num = 10;
print $num;

上記のプログラムを実行すると実行結果は次のようになります。

厳密な構文チェックを行う(1)

変数 $num は宣言を行わずに数値を代入していますが、特にエラーにはならずにプログラムを実行できました。

では先ほどの例を少し変更して use strict; を記述してみます。

use strict;
use warnings;

$num = 10;
print $num;

上記のプログラムを実行すると実行結果は次のようになります。

厳密な構文チェックを行う(2)

今回は変数 $num を宣言せずに 10 を代入したためエラーが表示されました。それでは変数 $num を使用する前に変数の宣言を行うように変更します。

use strict;
use warnings;

my $num;
$num = 10;
print $num;

上記のプログラムを実行すると実行結果は次のようになります。

厳密な構文チェックを行う(3)

今度はエラーも発生せずにプログラムが実行されました。

use strictuse warnings は必須ではありませんが、ミスの無いプログラムを作成するためにもプログラムの先頭に記述するようにして下さい。

-- --

Perl のプログラムで厳密な構文チェックと詳細な警告出力を行う方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。