O valor null em Perl

Em algumas linguagens de programação há um significado especial null. Por exemplo, em JavaScript, você pode atribuir o nullvariável:

var a = null;

Assim null — este é um dos valores possíveis em JSON:

{
  "a": null
}

E ainda NULL é um valor no banco de dados:

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

Null significa a ausência de valores.

Na linguagem de programação Perl não existe um valor que é chamado de null. Você pode escrever código que tenta atribuir um valor nullvariável:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

my $a = null;

Mas a execução deste código de erro:

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

Na linguagem de programação Perl é usado o valor especial undef o que significa a falta de valores. É a mesma coisa que null, mas apenas com outro nome.

Há uma diferença entre como a execução de JavaScript e Perl. Em JavaScript se identificar uma variável, mas não atribuir um valor a ela, então o seu valor será undefined. E mais ela já pode atribuir null. Perl funciona mais fácil. Em Perl, não há valores diferentes undefined e null, em Perl, há apenas um valor especial undef.

null em JSON e Perl

Ao serializar o Perl da estrutura de dados em JSON valores undef serão convertidos em null valores em JSON. Aqui está um exemplo de código:

▶ Run
#!/usr/bin/perl

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

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

print encode_json($data);

Este código irá imprimir na tela {"a":null}.

E vice-versa, se expandir JSON em Perl a estrutura, os valores null , serão substituídos por undef:

▶ Run
#!/usr/bin/perl

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

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

O programa exibirá:

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

Temas relacionados

Outros artigos