2012-05-06 5 views

答えて

4

確認してください。あなたが提案した方法は、ほぼです。試してみてください:

Config.pl

use warnings; 
use strict; 

our $test = "stackoverflow"; 

とメインプログラム:

#!/usr/bin/perl 
use warnings; 
use strict; 

require "Config.pl"; 

our $test; 

print "$test\n"; 

あなたがrequireを呼び出すと、ファイルが呼び出し元と同じ名前空間で実行されます。そのため、名前空間やmyの宣言がなくても、割り当てられた変数はすべてグローバルになり、スクリプトに表示されます。

+1

MyConfig.pm:(すでに "コンフィグ" と呼ばれるコアパッケージがあります。)

package MyConfig; use strict; use warnings; use Exporter qw(import); our @EXPORT_OK = qw($test); our %EXPORT_TAGS = (ALL => \@EXPORT_OK); our $test = "stackoverflow"; 1; 

main.plを時代遅れのそれは '私たち 'に取って代わられました。 – Borodin

+0

回答が修正されました。 geeeeeez。 –

+0

@Borodin、 'use vars'はそれに反する文書にもかかわらず時代遅れではありません。 – ikegami

2

あなたはConfig.plで行うよう

our $test; 

を書き込むことによってMain.plで変数$testを宣言する必要があります。そうすれば、すべてが期待どおりに機能します。

2

モジュール使用することをお勧め: `利用vars`が宣言された

use strict; 
use warnings; 
use MyConfig qw(:ALL); 
print "$test\n"; 
+0

"パッケージMyConfig;"おもう。 –

+0

@Bill Ruppert、ack !,ありがとう。自分の意見を壊すことについて話す。一定。 – ikegami

関連する問題