0

作成したPerlモジュールがあり、その中のサブルーチンの1つをスケジュールに従って実行したいと思います。サブルーチンを呼び出してcrontabから呼び出す小さなperlスクリプトを作成できることはわかっていますが、crontabから直接サブルーチンを呼び出す方法があれば、それはすばらしいことです。

これは可能ですか?

4

3 に答える 3

3

-eコマンドラインからコードを実行するためにPerlのスイッチを使用できます。

perl -e 'use your_module; your_function()'

-Mモジュールをロードするためのスイッチを使用して、これをさらに短くします。

perl -Myour_module -e 'your_function()'

perlrunのmanページはあなたの友達です。

于 2012-10-18T11:58:25.930 に答える
2

次のようなものを使用して、コマンドラインからサブルーチンを実行できます。

perl -MYour::Module=some,functions,to,import,such,as,foo -e 'foo();'

したがって、crontabから同じことを行うことができます。-I/path/to/your/modulescronは通常、制限された環境変数のセットで実行されるため、オプションを追加する必要がある場合があることに注意してください。

于 2012-10-18T11:58:23.417 に答える
2

より洗練されたソリューションが必要な場合は、モジュールがスクリプトとして実行されていることを検出し、その状況で異なる動作をするようにモジュールを構成できます。この説明を参照してください:Perlで、ファイルがモジュールとして使用されているのか、スクリプトとして実行されているのかを確認するにはどうすればよいですか?

于 2012-10-18T12:06:37.033 に答える