詳細な警告文の出力


 diagnosticsプラグマを使うとwarningsプラグマよりも詳しい説明文で警告を表示するようになります。
# diagnosticsプラグマを使ったスクリプト
use strict;
use diagnostics;

my $value;

print $value;
# diagnosticsプラグマを使ったスクリプトの警告文
Use of uninitialized value in print at diagnostics.pl line 6 (#1)
    (W uninitialized) An undefined value was used as if it were already
    defined.  It was interpreted as a "" or a 0, but maybe it was a mistake.
    To suppress this warning assign a defined value to your variables.

    To help you figure out what was undefined, perl tells you what operation
    you used the undefined value in.  Note, however, that perl optimizes your
    program and the operation displayed in the warning may not necessarily
    appear literally in your program.  For example, "that $foo" is
    usually optimized into "that " . $foo, and the warning will refer to
    the concatenation (.) operator, even though there is no . in your
    program.
# warningsプラグマを使ったスクリプト
use strict;
use warnings;

my $value;

print $value;
# warningsプラグマを使ったスクリプトの警告文
Use of uninitialized value in print at warnings.pl line 6.

関連項目

warn関数
CGIのデバッグ
トレース表示