module F {
my $x = 20; # 词法作用域变量,$x在F外部无法访问
#my $y is export; # 无法导出 $y
{
my $z = 42; # $z 无法在 { } 外部访问
say ::.keys; # ($_ $z $*DISPATCHER)
}
sub f1() { 42 } # 词法作用域 sub,无法在F外部访问到 &f1
sub f2() is export { 42 }; # 可以通过 is export 导出 &f2
my enum E is export (a => 1); # 词法作用域 enum,也可以使用 is export 导出 E 以及 a
say ::.keys; # ($_ a &f2 ::?MODULE $?MODULE E ::?PACKAGE &f1 $?PACKAGE $x)
}
say F::.keys; # (EXPORT)
import F;
say ::.keys; # ($=pod $_ $/ &f2 a F !UNIT_MARKER $=finish EXPORT $! E ::?PACKAGE GLOBALish $¢ $?PACKAGE)
say &f2(); # 42
say a; # a
say E::a; # a