2010-12-29 3 views
2

일부 전역 변수의 값을 상수로 설정하는 perl 모듈이 하나 있습니다. 이 전역 변수의 값을 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";