由于我是perl的新手,所以尝试学习一些基础知识。不知道这有多重要。
我有一个SQL Select查询,执行成功后返回1。我也有一个哈希图说
%map
对于此映射的每个键,我需要通过将该键作为输入来执行SQL。那是:
foreach my $key(keys %map){
my ($temp, $csr) = &the_fetchonerow_sql($sql, 1, $key);
}
如果sql返回1,则必须从映射中删除该对应键。
有人可以帮我提供代码吗?
这是我尝试过的代码的一部分,但出现错误“使用未初始化的变量eq”。
foreach my $key(keys %map){
my ($temp, $csr) = &the_fetchonerow_sql($sql, 1, $key);
if($csr eq 1){
delete($map{$key});
}
}
[$csr
显然是undef
,大概是数据库中的NULL
。
for my $key (keys %map) {
my (undef, $csr) = the_fetchonerow_sql($sql, 1, $key);
if (defined($csr) && $csr == 1) {
delete($map{$key});
}
}
[如果只想测试值是否为真-1
为真,0
和undef
为假-上面的内容简化为以下内容:
for my $key (keys %map) {
my (undef, $csr) = the_fetchonerow_sql($sql, 1, $key);
if ($csr) {
delete($map{$key});
}
}
或
for my $key (keys %map) {
my (undef, $csr) = the_fetchonerow_sql($sql, 1, $key);
delete($map{$key}) if $csr;
}
注意:
==
用于比较数字。 eq
用于字符串。&
。它不应该在那里。