Estoy usando el siguiente código para codificar una simple hash

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);

pero me sale el siguiente error:

hash- or arrayref expected <not a simple scalar, use allow_nonref to allow this>
InformationsquelleAutor Steve | 2011-12-11

2 Comentarios

  1. 57

    El código parece ser que faltan algunos trozos, así que vamos a añadir en la falta de bits (voy a hacer algunas suposiciones aquí) y arreglar las cosas a medida que avanzamos.

    Añadir que falta repetitivo.

    #!/usr/bin/perl
    
    use strict;
    use warnings;
    
    use JSON;
    
    my $name = "test";
    my $type = "A";
    my $data = "1.1.1.1";
    my $ttl  = 84600;

    Hacer el hash hash y no una matriz y no te olvides de localizar es: my %

    my %rec_hash = ('name'=>$name, 'type'=>$type,'data'=>$data,'ttl'=>$ttl);

    Realidad el uso de la encode_json método (pasándole un hashref):

    my $json = encode_json \%rec_hash;

    De salida el resultado:

    print $json;

    Y que funciona como cabría esperar sin errores.

    • Muchas gracias en señalarme a estos errores. Estoy aprendiendo Perl y no me di cuenta de que yo estaba tratando de utilizar una matriz como un hash lol Thx de nuevo +1!
    • A falta de que la barra invertida (\%rec_hash) era mi problema

Dejar respuesta

Please enter your comment!
Please enter your name here