0

又是一整天,我又被困住了。

我需要使用包含不能出现在电子邮件地址中的禁用词的单词或 var 数组。

任何一个:

$baddies = 'smtp mailer sysop';

或者

@baddies = qw(smtp mailer sysop);

或者

@baddies = qw/smtp mailer sysop/;  

数组中的坏词也更多,大约有两打。

我没有运行最新版本的perl所以不支持~~等等。

我正在进行一个循环,将乐队时间表发送出去。

在那个循环中,我需要检查电子邮件是否包含这些单词。我意识到可能有一些包含匹配项的好电子邮件,但这很好。

在我放弃试图弄清楚之后,我已经尝试了几十个例子。

最新的是:

####FYI## $uaddress is from the foreach $uaddress(@addresses){ loop.

my %params = map { $uaddress => 1 } @baddies;
if(exists($params{$uaddress})) {
print "yep, it's there"; #for testing
push(@failed,"$uaddress is restricted<br />");

但是,我尝试的一切都不能满足我的需要。

我什至尝试过 =~ 等等。

我现在真的觉得很愚蠢..

伙计们,我需要再上一节课。在此先感谢。

更新:我也试过:

$baddies = 'smtp mailer sysop';
 my @baddies = split / /, $baddies;
 # iterate through the array
  foreach (@baddies) {
   if($_ =~ $uaddress) #I also reversed that {
   print qq~$uaddress contains $_~;
   }
  }
4

1 回答 1

0

经过反复试验,错误和愚蠢的运气,我偶然在下面得到了这个工作:

foreach $uaddress(@addressList) {
 $uaddress =~ s/\s//g;
    @baddies = qw(smtp mailer sysop);
    my @failed;
     foreach (@baddies) {
      if($uaddress =~ m/$_/i) {
       push(@failed,"$uaddress is restricted because it found \"$_\" in the address<br />");
      }
    }
##stuff happens with emails that passed like Email::Verify
}
于 2012-08-01T13:05:16.833 回答