Une valeur null dans Perl

Dans certains langages de programmation, il existe une valeur null. Par exemple, en JavaScript, vous pouvez affecter nullde la variable:

var a = null;

Aussi null — c'est une des valeurs possibles en JSON:

{
  "a": null
}

Et encore, NULL arrive valeur dans la base de données:

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

Null est une valeur manquante.

Dans le langage de programmation Perl n'est pas la valeur qui est appelé null. Vous pouvez écrire du code qui tente d'affecter la valeur de la nullde la variable:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

my $a = null;

Mais l'exécution de ce code génère une erreur:

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

Dans le langage de programmation Perl utilise la valeur spéciale undef ce qui signifie le manque de valeurs. C'est la même chose que null, mais seulement avec un autre nom.

Il ya une différence entre comment fonctionne le JavaScript et Perl. Dans le JavaScript de déterminer si la variable, mais ne pas lui donner une valeur, alors elle sera undefined. Et plus loin elle peut affecter null. Perl en cours d'exécution plus facile. Perl n'est pas de valeurs différentes undefined et null, en Perl, il y a seulement une valeur spéciale undef.

null en JSON, et Perl

Lors de la sérialisation de Perl structure de données JSON valeurs undef seront convertis en null valeurs en JSON. Voici un exemple de code:

▶ Run
#!/usr/bin/perl

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

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

print encode_json($data);

Ce code affichera {"a":null}.

Et inversement, si le déployer JSON en Perl, la structure, les valeurs null seront remplacés par undef:

▶ Run
#!/usr/bin/perl

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

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

Le programme affichera:

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

Thèmes connexes

Autres articles