Vô trong Perl

Trong một ngôn ngữ có một giá trị đặc biệt null. Ví dụ, trong nền bạn có thể gán nullbiến:

var a = null;

Cũng null là một trong những giá trị có thể ở trong c:

{
  "a": null
}

Và là VÔ giá trị trong cơ sở dữ liệu:

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

Vô nghĩa là không có giá trị.

Perl ngôn ngữ không có giá trị được gọi là null. Bạn có thể viết mã cố gắng để gán một giá trị nullbiến:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

my $a = null;

Nhưng chạy mã này sẽ tạo ra một đề:

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

Trong ngôn ngữ Perl sử dụng một giá trị đặc biệt undef điều đó có nghĩa không có giá trị. Điều này cũng giống như null, nhưng chỉ với một tên khác.

Có sự khác biệt giữa làm việc như trong khung và Perl. Trong nền, nếu bạn định biến nhưng không phải gán cho nó một giá trị, giá trị của nó sẽ undefined. Và sau đó, nó đã có thể gán null. Perl công việc dễ dàng hơn. Trong Perl không có giá trị khác nhau undefinednull, trong Perl chỉ có một giá trị đặc biệt undef.

null trong chương trình Perl

Khi serializing Perl cấu trúc dữ liệu để HỆT giá trị undef sẽ được chuyển đến null giá trị trong MẢNG. Đây là một ví dụ mã:

▶ Run
#!/usr/bin/perl

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

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

print encode_json($data);

Mã này sẽ hiển thị {"a":null}.

Ngược lại, nếu bạn mở rộng trong c vào một Perl cấu trúc, các giá trị null sẽ được thay thế bởi undef:

▶ Run
#!/usr/bin/perl

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

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

Chương trình sẽ hiển thị:

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

Chủ đề liên quan

Các bài viết khác