Как я могу запустить свой Perl script только если он не был загружен с требованием?
У меня есть Perl script. Если он был вызван непосредственно из командной строки, я хочу запустить sub main
.
Если он был вызван с использованием require, я ничего не хочу делать и дожидаюсь, когда вызывающий script вызовет sub job
на нем досуг.
Ответы
Ответ 1
Рекомендуемое решение Perl для кода, которое должно быть запущено из script, а также для модуля perl.
Обычно он называется "модулино", который может использоваться как поисковый запрос Google или SO, чтобы найти инструкции.
Вот одно руководство со ссылками:
Perl script можно использовать как программу и как модуль
Ответ 2
Звучит так, как будто вы должны разделить ваш 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
из другого места, в этом случае он просто загружает определения функций
-
podpage, вы можете запустить pod2text
на
Это то, что вы искали?