如果它没有加载require,我怎么能运行我的Perl脚本?

时间:2010-10-23 14:29:51

标签: perl require

我有一个Perl脚本。如果从命令行直接调用它,我想运行sub main

如果使用require调用它,我想什么都不做,等待调用者脚本在闲暇时调用sub job

3 个答案:

答案 0 :(得分:1)

听起来好像你应该将脚本分成模块和前端程序。然后,想要使用该功能的程序可以使用use(或require,如果你坚持的话)加载模块,并且存根程序可以这样做,并调用job子程序。

答案 1 :(得分:1)

对于需要可以从脚本和perl模块运行的代码,建议使用Perl解决方案。

它通常被称为“modulino”,可用作Google或SO搜索词来查找方法。

以下是参考链接的一个方法:

Perl script usable as a program and as a module

答案 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

....

现在可以同时全部:

  1. 作为程序从命令行调用的可执行脚本(将调用其main()函数)

  2. 来自其他地方的use模块,在这种情况下它只是加载函数定义

  3. 您可以在

  4. 上运行pod2text的广告网页

    那是你在找什么?