El valor null en Perl

En algunos lenguajes de programación existe un valor especial null. Por ejemplo, en JavaScript, se puede asignar nullde la variable:

var a = null;

Así mismo null es uno de los valores posibles en JSON:

{
  "a": null
}

Y aún NULL es un valor en la base de datos:

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

Null significa la ausencia de valores.

En el lenguaje de programación Perl no hay un valor que se llama null. Se puede escribir código que trata de asignar un valor a nullde la variable:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

my $a = null;

Pero la ejecución de este código generará un error:

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

En el lenguaje de programación Perl se utiliza un valor especial undef que significa la falta de valores. Es lo mismo que null, pero solo con otro nombre.

Existe una diferencia entre cómo funciona el JavaScript y Perl. En JavaScript determinar si una variable, pero no se le asigna un valor, su valor será undefined. Y más allá ella ya puede asignar null. Perl funciona más fácil. En Perl no de valores distintos de undefined y null, en Perl hay sólo un valor especial undef.

null en JSON y Perl

Cuando se serializa el Perl de la estructura de datos en JSON con el valor de undef se convertirán en null los valores en JSON. He aquí un ejemplo 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 mostrará {"a":null}.

Y viceversa, si implementar JSON en el Perl de la estructura, los valores de null se sustituye por la undef:

▶ Run
#!/usr/bin/perl

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

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

El programa mostrará en pantalla:

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

Temas relacionados

Otros articulos