gpt4 book ai didi

Perl 库的使用

转载 作者:行者123 更新时间:2023-12-04 23:44:49 25 4
gpt4 key购买 nike

包含 use mylibrary 是否有任何好处(w.r.t 性能/内存使用)?有条件地(假设 mylibrary 仅在条件为真时使用)与添加 use 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;
# ...
}

在这种情况下,您将失去 use 的一些编译时优势。 .例如, require不打电话 mylibrary->import在编译时,如 use做。您可以调用 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进口很贵。大多数时候,可能不是。

关于Perl 库的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31330144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com