如何在perl中检查空标量?如果我没有$list
,我不想发送电子邮件.
我可以在send_email例程中检查空消息还是在外面执行此操作?
我有一个使用Win32 :: OLE的查询.
my $servSet = $wmiObj->ExecQuery("SELECT * FROM Win32_Service WHERE DisplayName LIKE 'ServiceNameHere%'", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly);
Run Code Online (Sandbox Code Playgroud)
我在这里循环并建立一个列表 $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";
}
Run Code Online (Sandbox Code Playgroud)
我使用$ list作为电子邮件的正文发送:
sub send_email {
...
..
$smtp->datasend($list);
..
.
}
Run Code Online (Sandbox Code Playgroud)
Eug*_*ash 10
在Perl中undef
,""
(以及0
和"0"
)评估为"false".所以你可以做一个布尔测试:
send_email() if $list;
Run Code Online (Sandbox Code Playgroud)
我不喜欢愚弄变量中的实际内容.如果我想查看是否有任何东西,任何东西都在标量中,我会查看它的长度:
send_mail() if length $scalar;
Run Code Online (Sandbox Code Playgroud)