Domanda

Ho un problema davvero strano, ma solo quando gestisce Ubuntu (su Centos Evertyhing funziona). Ho realizzato uno script in Perl e ho usato il Mail :: imapclient modulo.

Quando eseguo il seguente comando:

pp -o myapp perlscript.pl

Tutto funziona, ma quando sto cercando di eseguire lo script binario (MyApp), mi dà il seguente errore:

Cannot connect through IMAPClient: No such file or directory at script/perlscript.pl line 22.

Ma quando eseguo il perlscript.pl è tutto ok ...
Hai idea del perché?

Script:

#!/usr/bin/perl

use strict;
use Mail::IMAPClient;
use Data::Dumper;
use MIME::QuotedPrint ();

$|=1;

# Vars
my $odate = `date +'%d/%m/%Y'`; chomp($odate);
   $odate = '15/01/2012';
my $timeout = 120;

# Connect to IMAP server
my $imap = Mail::IMAPClient->new(
  Server   => 'imap.gmail.com',
  User     => 'my@email.com',
  Password => 'my_password',
  Port     => 993,
  Ssl      =>  1,
  )
  or die "Cannot connect through IMAPClient: $!";
È stato utile?

Soluzione

Stai facendo l'errore controllando il modo sbagliato. Devi ispezionare $@, non $!, per il costruttore. L'esecuzione del programma modificato (non ancora compilato con PP) fornisce il messaggio di errore utile:

Impossibile connettersi tramite imapclient: impossibile connettersi a imap.gmail.com: impossibile caricare 'io :: socket :: ssl': non riesco a individuare io/socket/ssl.pm in @inc (@inc contiene:…) at (Eval 7) Linea 2.

Sembra che tu abbia dimenticato di dirlo al compilatore Aggiungi la dipendenza nascosta che non ha potuto rilevare da solo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top