прагма база - вопрос предупреждения - PullRequest
3 голосов
/ 21 апреля 2011

Когда я запускаю это, почему я не получаю 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 ]

5 голосов
/ 21 апреля 2011

Ошибка, потому что вы не пытаетесь унаследовать от себя?

Это было бы так:

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

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

база должна быть свернута в пользу более новой, менее уловочной родитель .

4 голосов
/ 21 апреля 2011

Я подозреваю, что это ошибка документации.

Тестовый файл 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 является прагмой Core, вместо этого вы можете отправить perlbug (не уверен, какой вариант предпочтительнее).

...