[英]How do I implement lazy module loading in Perl?
如何在Perl中实现延迟模块加载?
我已经在python中看到了类似的事情,并且实现起来有些简单,但是在Perl中,我认为这会有点困难。
如果您需要在运行时加载整个模块,请使用require
。 但是对于导入,您将需要其他代码。 这是示例:
## this function is almost the same
## as "use My::Module qw( :something )"
sub load_big_module_at_runtime {
## load module in runtime
require My::Module;
## do import explicty if you need it
My::Module->import( ':something' );
}
您也可以仅在使用模块功能时使用autouse
加载模块。 例如:
## will load module when you call O_EXCL()
use autouse Fcntl => qw( O_EXCL() );
还有一个SelfLoader
模块,它允许您仅在需要时才加载单个功能。 看一下AutoLoader
模块,它执行几乎相同的操作。
我还建议您阅读Perl Cookbook的相关食谱 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.