Perl库的用法

前端之家收集整理的这篇文章主要介绍了Perl库的用法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
包括有条件地使用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是昂贵的.大多数时候,可能不是.

@H_404_41@

猜你在找的Perl相关文章