我有两个perl脚本。两者都没有"包"关键字或任何东西我有一个sub(以及一些自由浮动代码)我想在另一个脚本中使用,而不需要在这个过程中运行自由浮动代码。
A.pl
sub my_sub {
# do something
}
# do something else
my_sub();
# do something else
B.pl
require A.pl; # but load only the subs, don't run anything
my_sub();
这是否可以,而不必在单独的.pm文件中分离出sub然后加载它?
答案 0 :(得分:11)
require
将运行代码。那么你需要A.pl来识别加载和在命令行上调用之间的区别。我认为可以做到,但你有点忽略了这一点。
相反,我强烈建议逆转一切。不是拥有庞大的pl脚本,也没有pm模块,而是反转它并拥有微小的pl文件,其唯一的功能是加载模块并调用封装功能的函数。然后,添加新模块来保存共享的表单或功能是微不足道的。