我使用 Getopt::Long 为我的 perl 脚本获取命令行选项。我想传递一个可选参数给它,这样如果指定了一个值,我可以做一些事情,如果调用了选项,但没有传递任何值,我可以做一些别的事情。
该脚本将像这样调用:
/root/perlscripts/pingm.pl --installdaemon
对于未指定参数,并且:
--installdaemon=7.7.7.7
用于指定可选参数。
然后我会这样做:
Getopt::Long::Configure(qw(bundling no_getopt_compat));
GetOptions ('installdaemon:s' => \$daeminstall) or die ("Error in command line arguments\n");
下一步是我怀疑的地方。
如果我做:
if ($daeminstall) {
print "I was called!\n";
$installdaemon=1;
}
然后,如果使用 调用脚本,则永远不会调用该 IF 块,因为根据 perldoc,如果未指定值/root/perlscripts/pingm.pl --installdaemon
,则可选参数将用作字符串。''
那么如何在不传递值的情况下检查是否指定了选项?