加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在Perl中为未定义的值打印文字“null”?

发布时间:2020-12-16 06:11:25 所属栏目:大数据 来源:网络整理
导读:我正在运行查询’describe table’,它为’default’列返回’null’的值.但是,当我尝试将数据库中的值打印到 HTML表时,它不会打
我正在运行查询’describe table’,它为’default’列返回’null’的值.但是,当我尝试将数据库中的值打印到 HTML表时,它不会打印’null’.它总是空白的.

这就是我存储数据库中数据的方式:

@nulls = ();

while (($null) = $sth1->fetchrow_array)
    {
    push (@nulls,$null);
    }

当我打印数组@nulls的内容时,它永远不会打印’null’的文字值.它总是空白的.有办法克服这个问题吗?

解决方法

正如Chris J所说,空值作为未定义的值返回.

如果启用了警告,则在打印值时会收到“打印时未定义的值”警告.使用strict和warnings pragmata可以节省大量的调试时间.诊断实用程序为标准警告和致命错误添加了额外的解释性文本.

它们很容易捕获并替换来自数据库的NULL值:

use strict;
use warnings;

my @nulls = ();
while ((my $null) = $sth1->fetchrow_array)
    {
            # before perl 5.10: use the ternary operator.
            push @nulls,defined $null ? $null : 'NULL';

            # perl 5.10 adds the defined-or operator: //
            push @nulls,$null // 'NULL';
    }

或者您可以像上面显示的那样构建@nulls数组,然后在显示时更改空值.

my @pre_5_10  = map { defined $_ ? $_ : 'NULL' } @nulls;
my @perl_5_10 = map { $_ // 'NULL' } @nulls;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读