如何在perl中检查空标量?如果我没有$list,我不想发送电子邮件.
我可以在send_email例程中检查空消息还是在外面执行此操作?
我有一个使用Win32::OLE的查询.
my $servSet = $wmiObj->ExecQuery("SELECT * FROM Win32_Service WHERE displayName LIKE 'ServiceNameHere%'","WQL",wbemFlagReturnImmediately | wbemFlagForwardOnly);
foreach my $serv (in $servSet) { next if $serv->{started}; my $sname = $serv->{name}; my $sstate = $serv->{started}; my $ssmode = $serv->{startmode}; $list .= "Service: $sname - $sstate - $ssmode\n"; }
我使用$list作为电子邮件的正文发送:
sub send_email { ... .. $smtp->datasend($list); .. . }
解决方法
在Perl中,undef,“”(以及0和“0”)计算为“false”.所以你可以做一个布尔测试:
send_email() if $list;