Null在Perl

在某些编程语言中有一个特殊的价值 null. 例如, 在JavaScript你可以分配 null的变量:

var a = null;

null 是一个可能值的关系图来描述软件所需的依赖:

{
  "a": null
}

和NULL是一个值的数据库:

mysql> select null;
+------+
| NULL |
+------+
| NULL |
+------+
1 row in set (0.00 sec)

空装置没有价值。

在Perl编程语言是没有价值被称为 null. 你可以写代码 试图分配一个值 null的变量:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

my $a = null;

但是,运行本守则将生成一个错误:

Bareword "null" not allowed while "strict subs" in use at script.pl line 6.
Execution of script.pl aborted due to compilation errors.

在编程语言Perl使用一种特殊的价值 undef 这意味着 没有价值。 这是一样的 null,但只有一个不同的名称。

之间是有区别的工作JavaScript and Perl。 在JavaScript,如果定义 变量,但没有将它分配一个值,其价值将 undefined. 然后 它已经可以分配 null. Perl工作更加容易。 Perl有没有不同的价值观 undefinednull,在Perl只有一个特别值 undef.

null 关系图来描述软件所需的依赖和Perl

在序列化Perl数据结构叉值 undef 将被转换成 null 的价值在手机中。 这里是一个例子码:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;
use JSON::PP;

my $data = {
    a => undef,
};

print encode_json($data);

这个代码显示 {"a":null}.

相反,如果扩大JSON成Perl结构,值 null 将取代 undef:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;
use JSON::PP;
use Data::Dumper;

print Dumper decode_json('{"a":null}');

该程序将显示:

$VAR1 = {
          'a' => undef
        };

相关的主题

其他文章