2013-03-23 1 views
1

MIME::Parser::FileUnder의 하위 클래스 인 here을 하위 클래스로 지정하려고합니다. 그래서이 모듈 설치 :CPAN 설치 모듈은 정상적으로 표시되지만 해당 모듈에서 컴파일이 실패 함

$ sudo cpan install MIME::Parser::FileUnder 
[...] 
Result: PASS 
    DSKOLL/MIME-tools-5.504.tar.gz 
    /usr/bin/make test -- OK 
Running make install 
Manifying blib/man3/MIME::Decoder::Gzip64.3pm 
Appending installation info to /usr/local/lib/perl/5.14.2/perllocal.pod 
    DSKOLL/MIME-tools-5.504.tar.gz 
    sudo /usr/bin/make install -- OK 

가 제대로 설치 것 같은데,하지만 난 다시 MIME::Parser::FileUnder를 설치하려고하면

$ ./test_gmail.pl 
Can't locate MIME/Parser/FileUnder.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at GMailMIMEParser.pm line 4. 
BEGIN failed--compilation aborted at GMailMIMEParser.pm line 4. 
Compilation failed in require at ./test_gmail.pl line 13. 
BEGIN failed--compilation aborted at ./test_gmail.pl line 13. 

, 그것은 이상하게 그것이 다른 같은 최신의 날을 말하는 대신에 그것을 설치합니다 기준 치수. 사전에

package GMailMIMEParser; 

use strict; 
use MIME::Parser::FileUnder; 

our @ISA = qw(MIME::Parser::FileUnder); 

my $cur = 0; 

sub output_path 
{ 
    my $class = shift; 
    my $head = shift; 
    print(STDERR $head); 
    $cur++; 
    return "./$cur"; 
} 

감사 :

이 내 서브 클래스 GMailMIMEParser입니다!

+0

는, 그래서 parser-> filer-> output_path (XXX) 다음 $ ;, 내 $ 파서 = 새로운 MIME :: 파서 뭔가를하려는 생각합니다. – Analog

+0

무슨 뜻인지 이해가 안됩니다. 내'output_path()'를 사용하는 링크에서 설명한대로'MIME :: Parser :: FileUnder'를 하위 클래스 화해야합니다. 'GMailMIMEParser'는'MIME :: Parser :: FileUnder'를 하위 클래스로 분류하지만'MIME :: Parser :: FileUnder'를 인식하지 못합니다 – m0skit0

답변

0

나는 단순히 잘못된 것을하고있었습니다. 하위 클래스는 MIME::Parser::Filer이고 MIME::Parser::FileUnder이 아닌 MIME::Parser::Filer 하위 클래스입니다. 파일러 서브 클래스 또는 MIME 파서의

package GMailMIMEParser; 

use strict; 
use MIME::Parser::Filer; 

our @ISA = qw(MIME::Parser::Filer); 

my $cur = 0; 

sub output_path 
{ 
    my $class = shift; 
    my $head = shift; 
    print(STDERR $head); 
    $cur++; 
    return "./$cur"; 
}