3

当我运行它时,为什么我没有得到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);
    ...
4

2 回答 2

5

呃,因为你不想从自己身上继承?

那将是这样的:

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

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

base 应该被淘汰,取而代之的是更新的、花哨的parent

于 2011-04-21T15:49:49.230 回答
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 并将其作为错误报告提交

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

于 2011-04-21T15:53:40.153 回答