1

私の職場には、他のファイルが呼び出されるいくつかのコア ファイルを含む Web ポータルがあります。したがって、ユーザー名とプロジェクト ID には、誰もが使用し、コア ファイルで定義されている変数がいくつかあります。同じ変数を使用するために厳密な使用を避ける必要がありますが、そうしたくありません。では、コア ファイルに含まれていた変数のリストを取得するにはどうすればよいでしょうか。または、基本的なケースでは、厳密な使用中に変数 $projectId の値を取得するにはどうすればよいですか。

4

1 に答える 1

4

宣言されておらず、レキシカル スコープが設定されていない変数はすべてmyパッケージ変数です。strict変数名をパッケージで修飾することにより、文句を言わずにパッケージ変数を参照できます。したがって、「コアファイル」$projectidがデフォルトmainパッケージの変数を定義している場合、安全に参照できます

$main::projectid
$::projectid         ($::foo  is the same thing as $main::foo)

または、「コアファイル」に次のpackageようなステートメントが含まれているpackage ProjectData;場合は、次を使用します

$ProjectData::projectid

グローバル変数が現在のパッケージからのものである場合 (たとえば、コア ファイルとスクリプトの両方が既定のパッケージを使用している場合)、キーワードstrictを使用して変数を宣言することもできます。our

package main;
our $projectid;
# now  $projectid  refers to $main::projectid
...
于 2013-10-31T05:13:26.830 に答える