【问题标题】:GetOpt::Long module in perl for default valuesperl 中的 GetOpt::Long 模块用于默认值
【发布时间】:2015-04-10 22:35:37
【问题描述】:

我正在编写一个 perl 脚本,它将值作为命令行参数并将其放入分配的变量中并对数据库执行查询。

GetOptions("version=s"      => \$ver,
       "product=s"      => \$prod) 
or die ("Error in input variables\n");

脚本的查询部分如下:

my $sql = qq|select count(*) from software_build where sw_version like ? and finished > '$date' and product like ?|;
my $sth = $dts->prepare($sql);
$sth->execute($ver, $prod) or die $DBI::errstr;

如果用户不包含命令行参数,我应该进行哪些更改,而不是执行此查询:

my $sql = qq|select count(*) from software_build where finished > '$date'|;
my $sth = $dts->prepare($sql);
$sth->execute;

如果没有给出命令行参数,我需要默认执行这个查询。谢谢。

【问题讨论】:

  • 对选项值使用哈希。

标签: mysql perl dbi


【解决方案1】:

我刚刚添加了以下行,它可以工作

if ($ver eq ""){
my $sql = qq|select count(*) from software_build where finished < '$date'|;
my $sth = $dts->prepare($sql);
$sth->execute() or die $DBI::errstr;
my $count = $sth->fetchrow_array();
print $count;
}
else{
my $sql = qq|select count(*) from software_build where sw_version like ? and finished > '$date' and product like ?|;
my $sth = $dts->prepare($sql);
$sth->execute($version, $product) or die $DBI::errstr;
my $count = $sth->fetchrow_array();
print $count;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多