2010-12-29 7 views
2

グローバル変数の値を定数に設定するperlモジュールが1つあります。 これらのグローバル変数の値を、私がnew()を呼び出すときだけ利用可能な値に設定する必要があります。Perlでグローバル変数の値を設定する

私はそれを達成する方法はありますか?

答えて

3

ourを使用して変数をグローバルとして宣言します。同じパッケージ内の他の場所からも、それをレキシカルスコープの変数ourとして宣言すると、そのパッケージにアクセスできます。パッケージの外側からは、package ::接頭辞と同じようにしかアクセスできません。

例:別のファイルで

package Foo; 
use strict; 
use warnings; 

sub new { 
    our $bar = $_[1]; 
    return bless {}, $_[0]; 
} 

sub get_bar { 
    our $bar; 
    return $bar; 
} 
1; 

use strict; 
use warnings; 
use Foo; 
my $foo = Foo->new('baz'); 
print "This is baz: ", $foo->get_bar, "\n"; 
print "So is this: ", $Foo::bar, "\n"; 
関連する問題