プラグマを import すると use したクラスにもプラグマが効くようになる

知らなかった! id:dann に教えてもらった。

package Hoge::Base;

use strict;
use warnings;
use utf8;

sub import {
    strict->import;
    warnings->import;
    utf8->import;
}

このクラスを use すると strict, warnings, utf8 が効く

package Hoge;

use Hoge::Base;

# ここは strict, warnings, utf8

Moose, Mouse はこういう仕組みらしい。