Perl - 检查未初始化的值

时间:2010-05-10 12:58:51

标签: perl unix

我在perl脚本中执行以下操作:

my @pm1_CS_missing_months = `sqlplus -s $connstr \@DLmissing_months.sql`;

它接受sql查询的输出。 如果我必须检查没有选择的行,我该怎么办呢? 我想这样做:

if(no rows selected)
{
do this;
}

3 个答案:

答案 0 :(得分:3)

在标量上下文中(例如,在ifunless条件中),数组求值为数组中的项数。如果您的SQL结果集不包含任何行,则该数组将计算为0 - 一种虚假的风格。

unless (@pm1_CS_missing_months){
   # No rows: do this...
}

答案 1 :(得分:2)

我会选择DBD::Oracle

答案 2 :(得分:0)

基本上如果你使用sqlplus,你的输出将取决于查询。例如,如果没有符合您条件的行并且您正在执行SELECT COUNT(*) FROM TABLE,则输出中将得到0。如果你正在进行SELECT * FROM TABLE,你只会回答“没有选择行”,这不是空输出。因此,检查输出是空还是零是不够的,还要检查是否有字符串“没有选择行”。