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是昂贵的.大多数时候,可能不是. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |