0

carpサンプル Perl コードを使用してサブルーチンについて説明してもらえますか?

4

2 に答える 2

14

perldocCarp については、 を参照してください。

carpwarnスタック トレース情報を使用して、警告を発行した関数を呼び出した場所を示すPerl の関数の代替です。warnこれは、警告が発生した場所を知らせる の動作よりも役立ちます。

例:

このプログラム:

1: sub square_root {
2:  my $arg = shift;
3:  if ($arg < 0) {
4:    warn "Can't take square root of a negative number";
5:  } else {
6:    return sqrt($arg);
7:  }
8: }
9: print square_root(-4);

あなたに言う:

Can't take square root of a negative number at carpdemo.pl line 4.

しかし、次のように変更warnするとcarp:

1: use Carp;
2: sub square_root {
3:  my $arg = shift;
4:  if ($arg < 0) {
5:    carp "Can't take square root of a negative number";
6:  } else {
7:    return sqrt($arg);
8:  }
9: }
10: print square_root(-4);

それはあなたに言います:

Can't take square root of a negative number at carpdemo.pl line 4
        main::square_root(-4) called at carpdemo.pl line 10

追加の情報行は、関数またはモジュールを誤って使用している可能性のある場所を追跡するのに役立ちます。

于 2010-04-02T04:32:59.510 に答える
3

http://perldoc.perl.org/Carp.html

于 2010-04-02T04:25:33.640 に答える