J'utilise le code suivant pour encoder un hachage simple
use JSON;
my $name = "test";
my $type = "A";
my $data = "1.1.1.1";
my $ttl = 84600;
@rec_hash = ('name'=>$name, 'type'=>$type,'data'=>$data,'ttl'=>$ttl);
mais j'obtiens l'erreur suivante:
hash- or arrayref expected <not a simple scalar, use allow_nonref to allow this>
Votre code semble manquer des morceaux importants, alors ajoutons les bits manquants (je ferai quelques hypothèses ici) et corrigeons les choses au fur et à mesure.
Ajoutez le passe-partout manquant.
#!/usr/bin/Perl
use strict;
use warnings;
use JSON;
my $name = "test";
my $type = "A";
my $data = "1.1.1.1";
my $ttl = 84600;
Faites du hachage un hachage et non un tableau et n'oubliez pas de le localiser: my %
my %rec_hash = ('name'=>$name, 'type'=>$type,'data'=>$data,'ttl'=>$ttl);
Utilisez en fait le encode_json
méthode (en lui passant un hashref):
my $json = encode_json \%rec_hash;
Sortez le résultat:
print $json;
Et cela fonctionne comme je m'y attendais sans erreurs.
Essayez %rec_hash = ...
au lieu. @
indique une liste/un tableau, tandis que %
indique un hachage.