2015-04-10 1 views
1

Я пишу скрипт perl, который принимает значения в качестве аргументов командной строки и помещает их в назначенные переменные и выполняет запрос к базе данных.GetOpt :: Длинный модуль в 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; 

Мне нужно выполнить этот запрос с помощью deafault, если нет аргументов командной строки. Спасибо.

+1

Используйте хэш значения опций. –

ответ

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; 
} 
Смежные вопросы