それはrequire興味深いことではありません。それは、プラグマが で行うことimportです。
ほとんどの (すべて?) プラグマは$^Horを使用します%^H。パーサーはこれらを解析対象のスコープにローカライズします。つまり、以前の値に戻します。
たとえば、strictを取ります。そのimport変更し$^Hます。$^Hコンパイラにどのように動作するかを指示する一連のフラグが含まれています。
$ perl -e'
BEGIN { printf "%04X\n", $^H }
{
use strict;
BEGIN { printf "%04X\n", $^H }
}
BEGIN { printf "%04X\n", $^H }
'
0100
0702
0100
$^HPerl の使用のために予約されていますが、同様にローカライズされた%^Hものは一般的な使用に利用できます。たとえば、feature::qw_commentは、 によってロードされたときにパーサーに 1 回フックしますが、true でrequireない限り何もしません$^H{'feature::qw_comments::'}。インポートは同等です
sub import { $^H{'feature::qw_comments::'} = 1; }