次のような非推奨通知を送信したい
warnings::warnif( 'deprecated', 'function foo is deprecated' );
しかし、実際の警告がどこにあるかではなく、呼び出し元に報告するように、それをカープしたいと思います。carp
どうにかしてこれを行うことはできますか?
次のような非推奨通知を送信したい
warnings::warnif( 'deprecated', 'function foo is deprecated' );
しかし、実際の警告がどこにあるかではなく、呼び出し元に報告するように、それをカープしたいと思います。carp
どうにかしてこれを行うことはできますか?
package Foo {
sub bar {
warnings::warnif(deprecated => 'Foo:bar is deprecated');
}
}
use warnings;
# no warnings 'deprecated'; # <-- uncomment this to disable the warning
Foo::bar(); # <-- this is line 9
これは次のようになります。
Foo::bar is deprecated at test.pl line 9.
実際、warnings.pm のソースを見ると、内部で Carp.pm を使っているようです。確かに、warnings プラグマ自体のドキュメントはこれについてより明確になる可能性がありますが、perllexwarnは、これがどのように使用されることを意図しているかをかなり明確にしています。