6

perlスクリプトには、スクリプトの先頭にあるすべてのモジュール名が含まれています。

元:

use strict;
use XML::Parser;
use XML::Simple;
use DBI;
use DBD::DB2::Constants;
use POSIX qw( strftime );
use Storable qw(dclone);
use Data::Dumper;
use Carp;

すべてのモジュール名を別のファイルに保持し、そのファイルをメインのperlスクリプトに含めるにはどうすればよいですか?

ありがとう。

4

3 に答える 3

7

使用できます

BEGIN { do 'filename.pl' or die $@ }

doを参照してください。1;ファイルの最後に必ず含めてください。

于 2012-11-15T07:38:12.760 に答える
6

独自のモジュールを作成します。ただし、このモジュールでパッケージを作成すると、それらstrftimeなどは別の名前空間にインポートされます。あなたはこのsmipleをするために少しハックをすることができます:

MyModules.pm:

use strict;
use XML::Parser;
use XML::Simple;
use DBI;
use DBD::DB2::Constants;
use POSIX qw( strftime );
use Storable qw(dclone);
use Data::Dumper;
use Carp;

packageこの.pmにはキーワードがないことに注意してください。スクリプト:

use MyModules;

この.pmをスクリプトと同じディレクトリに配置するか、実行時にモジュール検索パスを追加します。

use lib '/my_modules_dir/';
use MyModules;

doおよびrequireコマンドの使用は、スクリプトの開始時に構文をチェックしないため、お勧めしません。確かにそれらをBEGINブロックに配置することはできますが、そのトリッキーな方法であり、一般的にBEGIN{ require ..}use

UPD:ikegamiは、多くのモジュールからこれを使用すると、問題が機能しないことを指摘しました。質問のスターターの情報(彼はメインスクリプトからこれを使用したい)に関係なく、多くのモジュールからこれを使用する方法についての情報を追加します。そうすれば、私の友人は気分が良くなります。MyModules.pmの最後に追加します。

delete $INC{'MyModules.pm'};
1;
于 2012-11-15T07:40:10.037 に答える
3

Toolkitモジュールをご覧ください。

于 2012-11-15T12:28:06.983 に答える