Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 获取未定义的子例程utf8::SWASHGET在./MIME/Parser/Filer.pm第365行调用_Perl_Email_Extract_Mime_Attachment - Fatal编程技术网

Perl 获取未定义的子例程utf8::SWASHGET在./MIME/Parser/Filer.pm第365行调用

Perl 获取未定义的子例程utf8::SWASHGET在./MIME/Parser/Filer.pm第365行调用,perl,email,extract,mime,attachment,Perl,Email,Extract,Mime,Attachment,我正在尝试从收到的电子邮件中提取附件,并使用以下与MIME::Tools相关的代码: $parser = MIME::Parser->new(); $parser->output_dir("./tmp"); $message = $parser->parse_data($msg); # $msg contains the email contents 调用$parser->parse_data($msg)时,脚本失败,原因如下: 在/MIME/Parser/Filer.pm

我正在尝试从收到的电子邮件中提取附件,并使用以下与MIME::Tools相关的代码:

$parser = MIME::Parser->new();
$parser->output_dir("./tmp");
$message  = $parser->parse_data($msg); # $msg contains the email contents
调用
$parser->parse_data($msg)
时,脚本失败,原因如下:

在/MIME/Parser/Filer.pm第364行调用未定义的子例程utf8::SWASHGET

这恰好是Filer.pm文件中正则表达式匹配的第一个实例,因此我假设这与执行正则表达式匹配的方式有关。我在前面放了一个正则表达式匹配,只是想看看它是否真的与此相关,它在同一个地方失败了,出现了相同的错误

这方面有什么帮助吗?我没有问题检索电子邮件及其内容,但附件一直是一个痛苦

我的perl版本是5.8.9,MIME::Tools-5.502,我不是root用户,不幸的是,我无法访问root权限(我通过使用

BEGIN { unshift @INC, "~email/mime"; }
在顶部,其中/mime包含来自相关CPAN模块的所有lib文件夹,在本例中为mime)


非常感谢

在有用的perl monks插话之后,问题是我使用的shebang指向了一个较旧的perl版本(显然,我们的工作环境中有两个perl版本,位于完全不同的位置,而我并不知道)

为什么旧版本会有这样的行为仍然有点神秘,但我想解决这个问题的办法似乎是升级到新版本(正如在另一篇文章中指出的)

无论如何,我不太确定交叉发布有多好,因此,如果我的主题因为在两个地方发布而感到多余,我道歉,我最初的动机是我会得到足够不同的响应。

交叉发布交叉发布是可以的,只要你链接到其他版本,而你忽略了这些版本。有关基本原理,请参见。