2012-12-10 2 views
2

Foo.pm그것이 그럼 난 모듈이 이미 '사용 기준'문

package Foo; 
sub new { 
}  
sub SomeMethod { 
} 
1; 

서브 클래스가있는 경우 '사용'을 사용하는 것이 필요하다 Foo::Bar 푸/Bar.pm

package Foo::Bar; 
use base Foo; 
use Foo; 
sub SomeMethod { 
} 
1; 

이제 우리는

use base Foo; 
use Foo; 

하거나

를 사용해야 할
use base Foo; 

모두를 수행합니다.

또한 우리는 다른 무엇을 하는가에게 use Foo;

를 사용해야 할 경우?

+1

참조 http://perldoc.perl.org/base.html – perreal

답변

5

use base Module;은 필요한 경우 항상 패키지를로드하지만 가져올 수는 없습니다. 그것은 * 다른 한편으로는, 모듈의 기본 수출을 가져옵니다,

BEGIN { 
    require Module; 
    push @ISA, 'Module'; 
} 

use Module; 유사합니다. 그것은 당신이 모듈에서 가져올하지 않는 그래서 use Foo; 다음 use base 'Foo';가 필요하지 않은

BEGIN { 
    require Module; 
    Module->import(); 
} 

유사합니다. 모듈이 이러한 방법을 정의하는 경우


* — 기술적으로, 그것은 단순히 인수없이 import를 호출합니다. 제가 설명한 것은 import 메소드의 정상적인 동작입니다.

+0

@ darch, ack, 예! 결정된. – ikegami

관련 문제