Question

J'ai un problème vraiment étrange mais seulement lorsque je fonctionne Ubuntu (sur Centos Evertyhing fonctionne). J'ai fait un script dans Perl et utilisé le Mail :: imapClient module.

Quand j'exécute la commande suivante:

pp -o myapp perlscript.pl

Tout fonctionne, mais lorsque j'essaie d'exécuter le script binaire (MyApp), cela me donne l'erreur suivante:

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

Mais quand j'utilise le perlscript.pl, tout va bien ......
Avez-vous une idée pourquoi?

scénario:

#!/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: $!";
Était-ce utile?

La solution

Vous faites la vérification des erreurs. Vous devez inspecter $@, ne pas $!, pour le constructeur. L'exécution du programme modifié (non encore compilé avec PP) donne le message d'erreur utile:

Impossible de se connecter via IMAPClient: Impossible de se connecter à imap.gmail.com: Impossible de charger 'IO :: Socket :: SSL': Impossible de localiser IO / Socket / SSL.pm dans @inc (@inc contient:…) (EVAL 7) Ligne 2.

Il semble que vous ayez oublié de dire au compilateur de Ajouter la dépendance cachée qu'il ne pouvait pas détecter seul.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top