Perl   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了perl – 为什么sub语句中的use语句适用于全局?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
use WWW::Mechanize;
$mech = new WWW::Mechanize;
$mech->get("http://www.google.com");
$html = HTML::TreeBuilder::XPath->new_from_content($mech->content);
sub test
{
    use HTML::TreeBuilder::XPath;
}

上面的代码编译,因此sub中的use语句全局应用.

为什么perl这样做?它没有任何意义.

解决方法

使用模块;有两个影响.

第一种是加载模块.显然,这具有全球影响.如果多个其他模块使用模块,则不希望多次加载模块.

第二种是调用模块的导入方法.对于大多数模块,这用于将符号导出到调用者的名称空间,以便可以调用这些函数,而无需使用完整的包名称限定它们.这显然影响的不仅仅是一些sub,因为没有人给每个sub赋予它自己的命名空间.但那真的取决于你.

但是,某些模块的导入方法做了一些完全不同的事情.它们改变了在指令存在的词法范围内编译代码的方式.这些被称为pragma.用严格;是一个例子.在sub中使用这些模块是有意义的.使用HTML :: TreeBuilder :: XPath;然而,在一个子中,没有任何意义.

大佬总结

以上是大佬教程为你收集整理的perl – 为什么sub语句中的use语句适用于全局?全部内容,希望文章能够帮你解决perl – 为什么sub语句中的use语句适用于全局?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。