Il valore null in Perl

In alcuni linguaggi di programmazione c'è un significato speciale null. Ad esempio, in JavaScript è possibile assegnare nullvariabile:

var a = null;

Così null — questo è uno dei possibili valori in JSON:

{
  "a": null
}

E ancora NULL è un valore nel database:

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

Null significa mancanza di valori.

Nel linguaggio di programmazione Perl non ci sono valori che si chiama null. È possibile scrivere codice che tenta di assegnare un valore nullvariabile:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

my $a = null;

Ma l'esecuzione di questo codice genera un errore:

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

Nel linguaggio di programmazione Perl utilizzato un valore speciale undef che significa la mancanza di valori. E ' lo stesso che e null, ma solo con un nome diverso.

C'è una differenza tra come funziona il JavaScript e Perl. In JavaScript se definire variabile, ma non assegnare il valore, il suo valore sarà undefined. E poi lei è già possibile assegnare null. Perl funziona più facile. In Perl no valori diversi undefined e null, in Perl c'è solo un valore speciale undef.

null in JSON e Perl

Durante la serializzazione Perl strutture di dati in JSON valori undef saranno convertiti in null valori in JSON. Ecco un esempio di codice:

▶ Run
#!/usr/bin/perl

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

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

print encode_json($data);

Questo codice visualizza {"a":null}.

E viceversa, se distribuire JSON in Perl la struttura, i valori null saranno sostituiti da undef:

▶ Run
#!/usr/bin/perl

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

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

Il programma visualizzerà sullo schermo:

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

Temi correlati

Altri articoli