正如Chris J所說,空值作爲未定義的值返回。
如果啓用了警告,則在打印值時,您將收到「未定義的打印值」警告。使用strict
和warnings
pragmata可以節省大量的時間調試。 diagnostics
編譯指示向標準警告和致命錯誤添加了其他解釋性文本。
這是很容易捕獲和他們來自數據庫替換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;
不是Perl的傢伙,但是在我使用的語言中,來自數據庫的'null'與語言中的'null'不同。因此應該小心測試數據庫'空'值而不是語言'空'值。 – 2009-02-23 04:47:59