加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl库的用法

发布时间:2020-12-16 06:19:24 所属栏目:大数据 来源:网络整理
导读:包括有条件地使用mylibrary有什么好处(w.r.t性能/内存使用)(假设mylibrary仅在条件为真时使用)与在脚本无条件地添加使用mylibrary相比? # Script 1 (Unconditional use)use mylibrary;if($condition){ # Do something with mylibrary}# Script 2 (Condition
包括有条件地使用mylibrary有什么好处(w.r.t性能/内存使用)(假设mylibrary仅在条件为真时使用)与在脚本无条件地添加使用mylibrary相比?

# Script 1 (Unconditional use)
use mylibrary;
if($condition)
{
    # Do something with mylibrary
}

# Script 2 (Conditional use)
if($condition)
{
    use mylibrary;
    # Do something with mylibrary
}

解决方法

use是一个编译时构造.在您的两种情况下,mylibrary实际上是在您的“无条件”和“有条件”情况下导入的.如果要有条件地导入库,请使用require,即运行时构造.

if ($condition) {
    require mylibrary;
    # mylibrary->import;
    # ...
}

在这种情况下,您将失去一些编译时使用的好处.例如,require在编译时不会像使用那样调用mylibrary-> import.如上所示,你可以自己调用import,但是在编译时有效的任何导入都不会在运行时调用.

假设您的模块mylibrary导出函数foo.然后这工作:

use strict;
use mylibrary;  # exports function foo()
foo;

但这是一个错误:

use strict;
require mylibrary;
mylibrary->import; # too late to notify Perl's parser about the foo() function
foo; # error; unknown function

至于这样做是否有任何好处,如果导入mylibrary是昂贵的.大多数时候,可能不是.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读