我想检查旧值,新值是否匹配,但我得到的错误如下,
Use of uninitialized value $oldvaluein concatenation (.) or string
我发现$ row [0]将返回空或NULL或字符串,有任何建议可以修复它。?
my $newvalue = $2;
my $oldvalue;
my $select_sth3 = $dbh->prepare("SELECT oldname FROM `Description` des,Devices D where D.hid = des.hid and D.ipv4 = '$ip' and des.index = $index ")or die "$dbh->errstr";
$select_sth3->execute() or die "$dbh->errstr";
my @row = $select_sth3->fetchrow_array;
$oldvalue= $row[0];
if ($newvalue ne $oldvalue)
{
print "$newvalue \n";
print "$oldvalue\n";
.......and .update database...
}
答案 0 :(得分:0)
在进行字符串比较之前,检查是否已定义$oldvalue
。
if (defined($oldvalue)) {
...
} else {
...
}
答案 1 :(得分:0)
在这样的情况下提及......
if (($oldvalue ne '') or (!defined($oldvalue)) or ($newvalue ne $oldvalue)){
//place your code here...
}