Perl 节省内存和编译时间

Perl 节省内存和编译时间,perl,runtime,compiler-optimization,Perl,Runtime,Compiler Optimization,在perl中使用模块有没有节省内存和编译时间的方法?例如,不加载所有不必要的、未使用的sub 或者,如果我将我的sub拆分为许多不同的pm文件,然后只加载必要的模块,这是一个好方法?例如: #!/usr/bin/perl -w sub mysub1() { use MySubsGroup1; } sub mysub2() { use MySubsGroup2; } 这个解决方案使用更少的内存并获得更少的编译时间?或者只加载必要功能的最佳实践是什么?来自 自动使用-延迟模块加载

在perl中使用模块有没有节省内存和编译时间的方法?例如,不加载所有不必要的、未使用的sub

或者,如果我将我的sub拆分为许多不同的
pm
文件,然后只加载必要的模块,这是一个好方法?例如:

#!/usr/bin/perl -w

sub mysub1() {
    use MySubsGroup1;
}
sub mysub2() {
    use MySubsGroup2;
}
这个解决方案使用更少的内存并获得更少的编译时间?或者只加载必要功能的最佳实践是什么?

来自

自动使用-延迟模块加载,直到使用某个函数

如果模块已加载,则声明

use autouse'Module'=>qw(func1 func2($;$)

相当于

使用模块qw(func1-func2)


use
始终在编译时运行。但是
需要
不需要。所以你可以使用
require模块在任何函数调用之前

当然,模块将仅在第一次执行
require
时加载(并保持加载状态)


请注意,
use
还可以对加载的模块调用
import
,您可能也想这样做<代码>使用模块qw(f1 f2)
需要模块的编译时版本;模块->导入(qw(f1 f3))

使用在编译时运行,因此将其放入子例程没有任何区别。因此无法仅加载必要的子例程?CPAN上还有Class::Autouse模块,如果Autouse与要加载的模块不兼容,则可以使用该模块。