[perl] problem mit MIME::Parser



  • habe dieses TestScript aus nem Buch abgeschrieben,und bei nem Kollegen der die gleiche Module installiert hat, läuft es...

    #!/usr/bin/perl
    
    #Datei : simple_parse.pl
    
    use strict;
    use MIME::Parser;
    
    my $file=shift;
    
    open F,$file 
    		or die "kann $file nicht öffnen: $!\n";
    
    #Parser erzeugen und konfigurieren
    my $parser = MIME::Parser->new;
    $parser->output_dir("/tmp");
    
    # Parsing der Datei
    my $entity = $parser->parse(\*F);
    
    print " From = " , $entity->head->get('From');
    print " Subject = " , $entity->head->get('Subject');
    print " MIME type = " , $entity->mime_type,"\n";
    print " Parts = " , scalar $entity->parts,"\n";
    
    for my $part ($entity->parts) {
    	print "\t", $part->mime_type,"\t",
    	print	$part->bodyhandle->path,"\n";
    }
    
    $entity->purge;
    

    programm gibt folgende fehlermeldung, nach dem die prints für from,subject, mime type und anzahl der parts korrekt ausgegeben wurden;

    can't locate method 'path' on a undefined value...

    in der zeile:

    print "\t", $part->mime_type,"\t",
    

    verstehe das gar nicht, mime_type hat er doch vorher schon verarbeitet...

    mail tools und mime tools sind installiert u.a.



  • MIME::Parser sagt mir leider nix.

    Was mir nur grad auffällt:

    print "\t", $part->mime_type,"\t",
        print    $part->bodyhandle->path,"\n";
    

    das Komma hinter "\t", ist das Absicht?

    path kommt ja erst in der nächsten Zeile.
    Ist da evtl. "bodyhandle" undef?


Log in to reply