我有一个非常奇怪的问题,但只有在运行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: $!";
答案 0 :(得分:4)
您正在以错误的方式进行错误检查。 You must inspect $@
,而不是$!
,用于构造函数。运行修改后的程序(尚未使用pp编译)会显示有用的错误消息:
无法通过IMAPClient连接:无法连接到imap.gmail.com:无法加载'IO :: Socket :: SSL':无法在@INC中找到IO / Socket / SSL.pm(@INC包含: ......)在(eval 7)第2行。
好像你忘了告诉编译器{@ 3}}它自己无法检测到。