0

複数のファイルの物理パス (場所/定義) を持つテキスト ファイルがあります。「reqiure」を使用してこのテキスト ファイルをインクルードし、そこで宣言された変数を使用しました。しかし、今、私は自分のコードをモジュール化しようとしています (これまでではありませんでした)。これを回避する最善の方法は何ですか。

別のパッケージを作成し、そこにサブルーチンを定義しました。すべてのパッケージと perl ファイルで同じ定義ファイルが必要です。モジュール宣言またはこれらのモジュールのサブルーチンを呼び出す perl スクリプトで、変数を 1 つの方法でしか使用できません。

ありがとうございました。

4

1 に答える 1

1

役立つかもしれない小さな使用例を次に示します。- どこでも必要なデータを含む 1 つのモジュール (.pm) - サブルーチンを含む 1 つのモジュール (.pm) - 1 つのメイン プログラム (.pl)

メインプログラム (program.pl):

 use strict;
 use warnings;

 use Data;
 printf "%s\n%s\n", $Path->{HOME}, $Path->{WORK};

 use MyModule; # uses Data
 printf mymoduleproc();

サブルーチンを含むモジュール (MyModule.pm):

 package MyModule;
 use strict;
 use warnings;
 use base 'Exporter';
 our @EXPORT = qw(mymoduleproc);

 use Data;
 sub mymoduleproc {
    return "MyModule => $Data::Path->{HOME}, $Data::Path->{WORK}" 
 }
 1;

(パス) 構成データ (Data.pm) を含むモジュール:

 package Data;
 use strict;
 use warnings;
 use base 'Exporter';
 our @EXPORT = qw($Path);

 our $Path =  { HOME => '/home', WORK => '/work'};
 1;

これは非常に単純な構造ですが、さらに進んでいく必要があります。また、こちらもお読みください

rbo

于 2012-06-19T13:38:40.143 に答える