perl - 如何在 Perl 的哈希中检测空字段?
问题描述
我正在使用 DBI 将 MySQL 表中的完整行提取到哈希中,并且无法弄清楚如何检测那些为空的字段。
下面的代码有点草率,因为我尝试了不同的方法来解决我的问题。本质上,下面的循环打印出 MySQL 第一行的内容。有些字段有数据,有些则没有。但是无论散列中的任何键是否指向数据,此循环都表明它们中的每一个都已定义,但为空。我会假设,我错过了一些如此简单的东西,但找不到它。
my %currec;
foreach my $row (@{$data_all})
{
say $row;
%currec = %{$row};
foreach my $columns (keys %currec) {
my $text = $currec{$columns};
say $text;
if(undef($text))
{
say "$columns is NOT DEFINED";
}
elsif (length($text) < 1)
{
say "$columns DEFINED, but empty";
}
}
exit;
}
解决方案
undef()
取消定义变量并始终返回未定义的值...
尝试:
...
if(!defined($text))
...
推荐阅读
- java - 在 Spring Boot 中获取 GET API 服务中的重复列表值
- python - 如何自动合并依赖机器人更新(配置版本 2)?
- sql - 由于 ENUM,无法使用脚本创建表
- wcf - 连接到 Web 服务时出现意外的 401 错误(可能与 kerberos \ double hop 错误有关)
- c# - C#,使用布尔值验证用户输入的字母和空格
- php - 显示加密的数据库字段
- assembly - 为什么汇编程序可以在高级语言中工作
- java - 如何使用 FCM 令牌向 Android 中的特定用户发送通知?
- r - 用列名检索 data.frame 列的最佳方法是什么?
- powershell - 从 Powershell 中的数组中删除模式