Я хотел бы знать, как изменить приведенный ниже код для удаления символов =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
}
При попытке запустить это я получаю следующие ошибки:
«Моя» переменная $ msg маскирует предыдущее объявление в той же области в строке 16 x.pl.
синтаксическая ошибка в строке 15 x.pl, рядом с "))"
синтаксическая ошибка в строке 31 x.pl, рядом с "}"
(Может быть бегущей многострочной << строкой, начинающейся на строке 25)
Выполнение x.pl прервано из-за ошибок компиляции. </p>
Я не уверен, почему, поскольку синтаксис выглядит нормально.