我有一个perl对象返回给我,我的数据似乎无法提取。如果我运行Data :: Dumper->转储为:
Data::Dumper->Dump($message_body)
我明白了:
$VAR1 = 'SBM Message
';
$VAR2 = '--SBD.Boundary.605592468
';
$VAR3 = 'Content-Type: text/plain;charset=US-ASCII
';
$VAR4 = 'Content-Disposition: inline
如果我执行该行:
print $message_body;
我明白了:
ARRAY(0x9145668)
我认为这是一个数组。但是,尝试迭代它只看起来只有一个元素。如何从中提取每个元素?顺便说一句,这基本上是使用MIME :: Parser包提取的邮件消息的正文。它是使用以下内容创建的:
my $parser = new MIME::Parser;
my $entity = $parser->parse($in_fh); # Where $in_fh points to a mail message
$message_body = $entity->body;
答案 0 :(得分:3)
尝试以下foreach
循环。
foreach my $item (@{$message_body})
{
print $item."\n";
}
$message_body
是ARRAY参考。因此,您需要取消引用它,然后使用foreach
循环遍历每个元素。
阅读:
http://perlmeme.org/howtos/using_perl/dereferencing.html和http://www.thegeekstuff.com/2010/06/perl-array-reference-examples/
答案 1 :(得分:-1)
Data::Dumper
只是穷人看到内容的选择。
要查看所有血腥内部细节,请改用Devel::Peek
。
use Devel::Peek;
Dump $message_body;