2011-03-08 4 views
1

내가 내 회사의 특정 BaseClass로 (애 크미 :: BaseClass로)를 확장하려고하지만 때마다 I :내 펄 모듈 확장에 도움이 필요

package Manager; 
use strict; 
use warnings; 
use base qw(Acme::BaseClass) 
sub new { ... 

그것은 나에게 오류 제공 :

Base class package "Acme::BaseClass" is empty. 

을하지만, 그래서 어쩌면 내가 놓친 거지

use Acme::BaseClass; 
my $bc = BaseClass->new("myname"); 
$bc->prnt(); # prints "myname" 
exit; 

이 펄에서 상속하려고 내 처음으로 내 스크립트에서 나는 패키지 벌금을 사용할 수 있습니다 뭔가 근본이야?

참고 :

  • 나는 "부모"를 사용하여 시도하고 그것은 또한 내가 옛날 사용하려고
  • 작동하지 않습니다

    이 가 애 크미 :: BaseClass로를 필요로 {BEGIN을; push @ISA, qw (Acme :: BaseClass); }

올바르게 수행하는 방법이 확실하지 않습니다. 다행스럽게도 그것은 내가 누락 된 단순한 무언가이다. 아무도 대답을 할 수 없다면 나는 더 자세한 내용을 추가 할 것이다.

+0

다음과 같이하면 어떻게됩니까? 'eval {require Acme :: BaseClass}; print "Error : $ @ \ n"; ' – DVK

+1

또한 코드가 의심스러워 보입니다. Thescript 예제는 ' my $ bc = Acme :: BaseClass-> new ("myname");' – DVK

+0

'이라고 표시되어야합니다. 또한 코드가 의심스러워 보입니다. Thescript example is ' my $ bc = Acme :: BaseClass-> new ("myname");' – DVK

답변

14

코드 샘플에서 판단, 그것은 Acme/BaseClass.pm 같은 소리는

package BaseClass; 

.... 

1; 

이 같은 무언가를 가지고 있으며, 그것은 아마도 자식 클래스는 BaseClass로 모듈하지만 테스트 스크립트를 찾을 수 없습니다

package Acme::BaseClass; 

.... 

1; 
+1

하하 !! 그게 전부 야. 엄청 고마워. – stephenmm

+0

....... 좋은 눈! – Axeman

0

필요 양철통. @INC가 올바르게 설정되어있어 둘 모두 모듈을 찾을 수 있습니다.

+0

알 수 없습니다. 심지어 CPAN을 통해. – stephenmm