/ / Perlスクリプトがrequireでロードされていない場合にのみ、それを実行できますか? - perl、require

Perlスクリプトがrequireでロードされていない場合にのみ、そのスクリプトを実行するにはどうすればよいですか? - perl、require

私はPerlスクリプトを持っています。コマンドラインから直接呼び出された場合は、実行したい sub main.

requireを使って呼び出された場合、何もしないで呼び出し元のスクリプトが呼び出すのを待っています sub job それはレジャーでのことです。

回答:

回答№1は1

Perlモジュールだけでなく、スクリプトからも実行可能なコード用の推奨Perlソリューションがあります。

それは通常 "モジュリノ"と呼ばれ、ハウツーを見つけるためにGoogleやSO検索用語として使用することができます。

ここで参考リンクを使って説明します。

プログラムやモジュールとして利用可能なPerlスクリプト


回答№2の場合は1

スクリプトをモジュールとフロントエンドプログラムに分割する必要があるかのように聞こえます。次に、機能を使用したいプログラムは、 use (または require、あなたが主張するならば)、スタブプログラムはそれを行うことができ、 job サブルーチンも同様です。


回答№3の場合は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. あなたが走れるポッドページ pod2text

それはあなたが探していたものですか?