Звучит так, как будто вы должны разделить ваш script на модуль и программу на переднем плане. Затем программы, которые хотят использовать функциональные возможности, могут загружать модуль с помощью use (или require, если вы настаиваете), и программа-заглушка может это сделать, а также вызов подпрограммы job.
Ответ 3
Вы могли бы что-то вроде этого:
#!/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
....
Теперь это может быть все:
исполняемый script, который вызывается из командной строки в виде программы (которая будет вызывать ее функцию main())
модуль в use из другого места, в этом случае он просто загружает определения функций