Perl PP正在/ script /中搜索输出脚本

时间:2012-01-24 14:04:14

标签: perl ubuntu par

我有一个非常奇怪的问题,但只有在运行Ubuntu时(在CentOS evertyhing上工作)。 我在Perl中创建了一个脚本并使用了Mail::IMAPClient模块。

当我运行以下命令时:

pp -o myapp perlscript.pl

一切正常,但当我尝试执行二进制脚本(myapp)时,它会给我以下错误:

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

但是当我运行perlscript.pl时一切都还行...... 你知道为什么吗?

脚本:

#!/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: $!";

1 个答案:

答案 0 :(得分:4)

您正在以错误的方式进行错误检查。 You must inspect $@,而不是$!,用于构造函数。运行修改后的程序(尚未使用pp编译)会显示有用的错误消息:

  

无法通过IMAPClient连接:无法连接到imap.gmail.com:无法加载'IO :: Socket :: SSL':无法在@INC中找到IO / Socket / SSL.pm(@INC包含: ......)在(eval 7)第2行。

好像你忘了告诉编译器{@ 3}}它自己无法检测到。