1

我想发送一个弃用通知,例如

warnings::warnif( 'deprecated', 'function foo is deprecated' );

但我更愿意让它停下来,以便它向调用者报告,而不是实际警告的位置。我可以以carp某种方式做到这一点吗?

4

1 回答 1

1

试过了吗?

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。诚然,警告 pragma 本身的文档可能对此更清楚,但perllexwarn确实非常清楚地表明这就是它的使用方式。

于 2013-08-01T12:12:24.927 回答