我有一个Perl脚本。如果从命令行直接调用它,我想运行sub main
。
如果使用require调用它,我想什么都不做,等待调用者脚本在闲暇时调用sub job
。
答案 0 :(得分:1)
听起来好像你应该将脚本分成模块和前端程序。然后,想要使用该功能的程序可以使用use
(或require
,如果你坚持的话)加载模块,并且存根程序可以这样做,并调用job
子程序。
答案 1 :(得分:1)
对于需要可以从脚本和perl模块运行的代码,建议使用Perl解决方案。
它通常被称为“modulino”,可用作Google或SO搜索词来查找方法。
以下是参考链接的一个方法:
答案 2 :(得分:1)
你可以这样:
#!/usr/bin/env perl
package Some::Module;
sub job { ... }
sub main { ... }
if (!caller) {
main(@ARGV);
}
1;
__END__
=head1 NAME
Some::Module - program, podpage, and module
....
现在可以同时全部:
作为程序从命令行调用的可执行脚本(将调用其main()
函数)
来自其他地方的use
模块,在这种情况下它只是加载函数定义
您可以在
pod2text
的广告网页
醇>
那是你在找什么?