У меня проблемы с сопоставлением текстовых файлов .msg с использованием Perl. Первый блок кода работает для печати всего сообщения, но мне просто нужно имя файла, если оно содержит определенную строку.
use warnings;
use strict;
use Email::Outlook::Message;
use Email::MIME;
my $sourceDir = "c:/temp";
open_msg("test.msg");
sub open_msg {
my $verbose = 0;
my $msgFile = shift;
my $origMsg = new Email::Outlook::Message "$sourceDir/$msgFile", $verbose or die "$!";
my $mime = $origMsg->to_email_mime;
print $mime->as_string;
return ($origMsg);
}
.msg файлы находятся в папке (в Windows). Я использовал приведенный ниже код для печати имен файлов .txt, но мне нужно использовать нечто подобное для файлов .msg.
#works for .txt files
my @files = glob "C:/temp";
foreach my $file (@files) {
open (FILE, "$file");
while(my $line= <FILE> ){
print "$file" if $line =~ /test_string/;
}
close FILE;
}
Спасибо!