pragma base - 警告问题

时间:2011-04-21 15:39:38

标签: perl warnings base pragma

当我运行此操作时,为什么我没有获得Attempting to inherit from yourself generates a warning.base#DIAGNOSTICS)?

#!/usr/bin/env perl
use warnings;
use diagnostics;
use 5.012;

{
    package MyWebServer;

    use HTTP::Server::Simple::CGI;
    use base qw(HTTP::Server::Simple::CGI);
    ...

2 个答案:

答案 0 :(得分:5)

呃,因为你不是想继承自己?

就是这样:

#!/usr/bin/env perl
use warnings;
use diagnostics;
use 5.012;

{
    package HTTP::Server::Simple::CGI;
    use base qw(HTTP::Server::Simple::CGI);
    ...

基础应该逐步取消,以支持更新,更少花哨的parent

答案 1 :(得分:4)

我怀疑这是一个文档错误。

测试文件t/base.t显示此类型的方案以获取警告:

use warnings;
use diagnostics;
use 5.012;

package Foo;
use base 'Foo';

__END__

Class 'Foo' tried to inherit from itself

您可以修补POD并将其作为Bug Report提交。

由于base是核心编译指示,您可以提交perlbug(不确定哪个是首选)。