我如何在Perl中实现惰性模块加载?
我看到Python中有类似的东西,实现起来有点简单,但是在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的相应的示例。
SelfLoader
模块。 - Ivan Nevostruevif
来实现这个吗? - innaM