我想知道如何修改下面的代码以去除=20
多行末尾的字符,主要是按时间顺序对消息从第一个接收或发送到最后一个进行排序。我不确定这是否是内部 Perl 例程。
#!/usr/bin/perl
use warnings;
use strict;
use Mail::Box::Manager;
my $file = shift || $ENV{MAIL};
my $mgr = Mail::Box::Manager->new(
access => 'r',
);
my $folder = $mgr->open( folder => $file )
or die "$file: Unable to open: $!\n";
for my $msg ($folder->messages)
{
my $to = join( ', ', map { $_->format } $msg->to );
my $from = join( ', ', map { $_->format } $msg->from );
my $date = localtime( $msg->timestamp );
my $subject = $msg->subject;
my $body = $msg->body;
# Strip all quoted text
$body =~ s/^>.*$//msg;
print <<"";
From: $from
To: $to
Date: $date
$body
}
尝试运行此程序时,出现以下错误:
"my" 变量 $msg 掩盖了 x.pl 第 16 行相同范围内的早期声明。 x.pl 第 15 行的语法错误,靠近 ") ) " x.pl 第 31 行的语法错误,靠近 "}"(可能是runaway multi-line << string 从第 25 行开始) x.pl 的执行由于编译错误而中止。
我不确定为什么,因为语法看起来不错。