Как включить предупреждения FATAL в модулях, которые наследуются от моего базового модуля, не упоминая FATAL во всех них? - PullRequest
1 голос
/ 05 февраля 2011

Я использую mojolicious framework для написания Web-приложений.В Mojo :: Base есть хорошая функция для включения ограничений и предупреждений во всех модулях, которые наследуются от него.

Однако в наборе основных модулей для моего приложения я хочу, чтобы все предупреждения были ФАТАЛЬНЫМИ.Это достигается написанием

use warnings FATAL => qw( all );

Я хочу написать такой модуль, как Mojo :: Base, который просто делает предупреждения фатальными для каждого вызывающего абонента, который наследует его.Таким образом, я не буду писать код выше.

Спасибо.

1 Ответ

7 голосов
/ 05 февраля 2011

Вы можете создать модуль, который импортирует предупреждения в его import sub:

package MyBase;
use warnings;

sub import {
    warnings->import(FATAL => qw( all ));
}

1;

Тогда предупреждения FATAL будут включены в каждом модуле, который use it:

use MyBase;
print "<<$a>>\n";

Урожайность:

Name "main::a" used only once: possible typo at warn_enable.pl line 2.
Use of uninitialized value $a in concatenation (.) or string at warn_enable.pl line 2.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...