人々は私に warn の代わりに carp を使った例を挙げ続けます。なぜですか? carp が warn より優れているのはなぜですか?
ベストアンサー1
carp は、メッセージがどこから来たのか(コンテキスト)について、より詳しい情報を提供します。
#!/usr/bin/perl
use Carp;
foo();
bar();
baz();
sub foo {
warn "foo";
}
sub bar {
carp "bar";
}
sub baz {
foo();
bar();
}
生産する
foo at ./foo.pl line 9.
bar at ./foo.pl line 13
main::bar() called at ./foo.pl line 6
foo at ./foo.pl line 10.
bar at ./foo.pl line 14
main::bar() called at ./foo.pl line 19
main::baz() called at ./foo.pl line 7
この小さなプログラムではちょっとばかげているかもしれませんが、誰が文句を言っているメソッドを呼び出したのかを知りたいときには便利です。