모든 헤더에서 이러한 선언을 반복하지 않고 모든 주요 선언을 주 Perl 프로그램 및 기타 패키지에 전용 패키지로 설정하고 싶습니다. 나는 확실히 그것을 오해하지만 뒤에 유리수를 알아낼 수 :전용 패키지의 perl 상수 정의
는 이제 가정 해 봅시다 :
- 나는 패키지 my_common_declarations.pm 내 내 공통 데이터 설정을 가지고있다.
-이 데이터를 다른 패키지 (예 : , my_perl_utils.pm)에서 사용하고 싶습니다.
#!/usr/bin/perl -w
package my_perl_utils;
use parent qw(Exporter);
our @EXPORT_OK = qw(f1 f2);
use my_common_declarations qw(debugme);
my %setup = &debugme;
my $DEBUGME = $setup{setup}{debugme};
# This generates this error : "Use of uninitialized value"
use constant true => $setup{setup}{'true'};
print "=" x25, "\nDEBUG true :\nimport = " . $setup{setup}{'true'} . "\nconstant = " , true , "\n", "=" x25, "\n";
sub f1{
# some rationals using the true or false constants
}
sub f2{
}
1;
오류없이 선언 된 '참'상수를 가져 오는 데 성공할 수 없습니다.
공용 선언 패키지를 주 프로그램에서 한 번만 가져오고 여기에 상수를 선언하거나이 상수가 필요한 각 패키지 내에서 다시 선언해야합니까?
들으
thx 여러분의 의견을 신중히 검토하고 구현하려고합니다. – hornetbzz
하지만 그는 패키지 이름에 밑줄을 사용하고 있습니다. 즉, 로컬 사용을 위해 예약되어 있음을 의미합니다. [이 질문] (http://stackoverflow.com/questions/658955/how-do-i-choose-a-package-name-for-a-custom-perl-module-that-does-not-collide)을 참조하십시오. 자세한 내용은 – cjm
@cjm => 그 점을 지적 해 주셔서 고맙습니다. 나는 그 대답을 삭제했습니다. –