如何在Perl中实现惰性模块加载?
如何在Perl中实现延迟模块加载 我在python中也看到过类似的情况,实现稍微简单一些,但在Perl中,我认为这会有点困难。根据需要加载模块 如果需要在运行时加载整个模块,可以使用。但对于导入,您需要额外的代码。下面是一个例子:如何在Perl中实现惰性模块加载?,perl,lazy-loading,Perl,Lazy Loading,如何在Perl中实现延迟模块加载 我在python中也看到过类似的情况,实现稍微简单一些,但在Perl中,我认为这会有点困难。根据需要加载模块 如果需要在运行时加载整个模块,可以使用。但对于导入,您需要额外的代码。下面是一个例子: ## this function is almost the same ## as "use My::Module qw( :something )" sub load_big_module_at_runtime { ## load module in r
## 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' );
}
使用其功能时加载模块
您还可以仅在使用模块的功能时加载模块。例如:
## will load module when you call O_EXCL()
use autouse Fcntl => qw( O_EXCL() );
仅在使用时加载函数
还有一个模块,它允许您仅在需要时加载单个函数。看看模块,它做的事情几乎相同
我还建议您阅读以下相关食谱。您答案的第二部分非常有趣。我不知道这个模块的存在。谢谢再看看
SelfLoader
模块。有没有人使用if
来实现这一点?if
在您需要决定:加载还是不加载模块时是有用的。为什么您认为在Perl中会更难?我想这主要是一种直觉。没有什么实质性的东西。