如何使用Email::Address使用perl从文件中提取电子邮件 #/usr/bin/perl #作家利奥 使用电子邮件::地址; #严格使用; my$file=“/var/log/maillog”; my$string=“msgif”; 打开(邮件文件); 我的@buffer=; 关闭(邮件); my$lines=grep(/$string/,@buffer); #打印“@行”; my@addresses=Email::Address->parse($line); 打印$addresses[0]->address;

如何使用Email::Address使用perl从文件中提取电子邮件 #/usr/bin/perl #作家利奥 使用电子邮件::地址; #严格使用; my$file=“/var/log/maillog”; my$string=“msgif”; 打开(邮件文件); 我的@buffer=; 关闭(邮件); my$lines=grep(/$string/,@buffer); #打印“@行”; my@addresses=Email::Address->parse($line); 打印$addresses[0]->address;,perl,Perl,这是我的密码。我是perl新手,我想知道如何使用Email::Address解析文件中的行,然后获取电子邮件地址。未测试: #!/usr/bin/perl #Author Leo use Email::Address; #use strict; my $file = "/var/log/maillog"; my $string="msgif"; open(MAIL, $file); my @buffer =<MAIL>; close(MAIL); my $lines=grep(/$

这是我的密码。我是perl新手,我想知道如何使用
Email::Address
解析文件中的行,然后获取电子邮件地址。

未测试:

#!/usr/bin/perl
#Author Leo
use Email::Address;

#use strict;
my $file = "/var/log/maillog";
my $string="msgif";
open(MAIL, $file);
my @buffer =<MAIL>;
close(MAIL);
my $lines=grep(/$string/, @buffer);

#print "@lines";

my @addresses = Email::Address->parse($lines);
print $addresses[0]->address;
#/usr/bin/perl
使用警告;
严格使用;
使用电子邮件::地址;
打开(my$fh,未测试:

#!/usr/bin/perl
#Author Leo
use Email::Address;

#use strict;
my $file = "/var/log/maillog";
my $string="msgif";
open(MAIL, $file);
my @buffer =<MAIL>;
close(MAIL);
my $lines=grep(/$string/, @buffer);

#print "@lines";

my @addresses = Email::Address->parse($lines);
print $addresses[0]->address;
!/usr/bin/perl
使用警告;
严格使用;
使用电子邮件::地址;

使用
File::Slurp
Email::Find
打开(my$fh),另一个想法。您可以定义您的搜索,并将其实现到其中

#!/usr/bin/perl

use warnings;
use strict;

use Email::Address;

open(my $fh, '<', '/var/log/maillog')
    or die "Cannot open /var/log/maillog: $!";

while (<$fh>) {
  next unless /msgif/;

  my @addrs = Email::Address->parse($_);

  foreach my $addr (@addrs) {
    print "$addr\n";
  }
}

close($fh);

使用
File::Slurp
Email::Find
的另一个想法。您可以定义您的搜索,并将其实现到该搜索中

#!/usr/bin/perl

use warnings;
use strict;

use Email::Address;

open(my $fh, '<', '/var/log/maillog')
    or die "Cannot open /var/log/maillog: $!";

while (<$fh>) {
  next unless /msgif/;

  my @addrs = Email::Address->parse($_);

  foreach my $addr (@addrs) {
    print "$addr\n";
  }
}

close($fh);

或者您可以使用正则表达式来解析电子邮件。

或者您可以使用正则表达式来解析电子邮件。

如果您是perl新手,为什么您的代码如此过时?@innaM:My guess-从错误源学习:-)如果您是perl新手,为什么您的代码如此过时?@innaM:My guess-从错误源学习:-)显示三参数版本的
open
很好,但是不要忘记检查是否成功
open my$fh',显示三参数版本的
open
很好,但是不要忘记检查是否成功
open my$fh,'