【发布时间】:2011-10-20 04:41:58
【问题描述】:
我需要帮助确定在哪里拨打我的send_mail ()。我目前将它放在代码中的位置,它会针对每个条件发送一封电子邮件,并且它发送的每封电子邮件都会添加另一条记录作为集合的一部分。我只对发送一封包含收集记录的电子邮件感兴趣,即显示的最后一封电子邮件(msg4)。我可以在同一个循环中执行此操作吗?我不确定。
示例: (msg1)
Service: MST Engine - Stopped - Manual
(msg2):
Service: MST Engine - Stopped - Manual
Service: MST Logging - Stopped - Manual
(msg3):
Service: MST Engine - Stopped - Manual
Service: MST Logging - Stopped - Manual
Service: MST Server - Stopped - Manual
(msg4):(只对这封邮件感兴趣)
Service: MST Engine - Stopped - Manual
Service: MST Logging - Stopped - Manual
Service: MST Server - Stopped - Manual
Service: MST Formatter - Stopped - Manual
这是我设置条件的主要部分: (我使用的 Win32::OLE 包有一个方法 in(COLLECTION)。所以它不是数组引用。)
foreach my $serv (in $servSet)
{
next if $serv->{started};
my $sname = $serv->{name};
my $sstate = $serv->{started};
my $ssmode = $serv->{startmode};
$winsvcs .= "Service: $sname - $servicestate[$sstate] - $ssmode\n";
send_email();
}
【问题讨论】: