如何在Perl中检查空标量?

如何在perl中检查空标量?如果我没有$list,我不想发送电子邮件.

我可以在send_email例程中检查空消息还是在外面执行此操作?

我有一个使用Win32::OLE查询.

my $servSet = $wmiObj->ExecQuery("SELECT * FROM Win32_Service WHERE displayName LIKE 'ServiceNameHere%'","WQL",wbemFlagReturnImmediately | wbemFlagForwardOnly);

在这里循环并构建一个列表$list

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;

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...