我在Email:MIME方面遇到了一个奇怪的问题。我有以下代码,用于解析通过管道传输的MIME电子邮件:
my $parsed = Email::MIME->new(<STDIN>);
print $parsed->body;
当我运行它时,通过将示例MIME电子邮件发送到其中,或者通过将我的主机设置为向其发送新电子邮件并向自己发送一封邮件,我在第一行收到以下错误:
> Can't use string ("Received: from
> servera02.tk2adsm") as a HASH ref
> while "strict refs" in use at
> /usr/lib/perl5/site_perl/5.8.8/Email/Simple.pm
> line 100, <STDIN> line 71.
错误中显示的行根据电子邮件而有所不同,但它始终是电子邮件内容的第二行(所以我真的不太确定为什么它声称它是STDIN第71行)。我已经完成了一些谷歌搜索,它似乎对我来说真的很独特 - 有没有人有任何想法?
我不是很长的Perl专家,而且我从未使用过Email :: MIME,所以我希望这很简单。
克里斯
答案 0 :(得分:3)
documentation表示new()
期望其参数是字符串形式的消息。 <STDIN>
是一个数组(因为参数列表在列表上下文中)。
尝试将消息转换为字符串:my $parsed = Email::MIME->new(join('', <STDIN>));
答案 1 :(得分:-1)
我的意思是如果你关闭严格的参考
,你可能不会得到错误