Perl高级特性与内省技术深度解析
1. 导入与全局符号操作
在Perl编程中,导入操作是常见的。导入的内容可以通过 use Some::Module '...'; 声明,或者来自 Some::Module 的默认 @EXPORT 列表。这些导入项可能带有类型符号,也可能没有。若没有类型符号,如 use Carp 'croak'; ,则它们通常指的是子例程。
当 @EXPORT 设置为 ("useful") 时, Exporter 会检查并移除类型符号。若没有类型符号,会执行类似如下的操作:
*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"};
若存在类型符号, Exporter 会根据不同的类型构建引用并赋值给全局符号的相应部分:
*{"${callpkg}::$sym"} =
$type eq '&' ? \&{"${pkg}::$sym"} :
$type eq '$' ? \${"${pkg}::$sym"} :
$type eq '@' ? \@{"${pkg}::$sym"} :
$type eq '%' ? \%{"${pkg}::$sym"} :
$type e
超级会员免费看
订阅专栏 解锁全文
15

被折叠的 条评论
为什么被折叠?



