私は次のコードを使用して単純なハッシュをエンコードしています
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);
しかし、次のエラーが表示されます。
hash- or arrayref expected <not a simple scalar, use allow_nonref to allow this>
あなたのコードにはいくつかの重要なチャンクが欠けているようですので、欠けているビットを追加して(ここでいくつかの仮定を行います)、私たちが行くにつれて物事を修正しましょう。
欠落している定型句を追加します。
#!/usr/bin/Perl
use strict;
use warnings;
use JSON;
my $name = "test";
my $type = "A";
my $data = "1.1.1.1";
my $ttl = 84600;
ハッシュを配列ではなくハッシュにして、ローカライズすることを忘れないでください:my %
my %rec_hash = ('name'=>$name, 'type'=>$type,'data'=>$data,'ttl'=>$ttl);
実際にはencode_json
メソッド(hashrefを渡す):
my $json = encode_json \%rec_hash;
結果を出力します。
print $json;
そして、それは私がエラーなしで期待するように機能します。
%rec_hash = ...
代わりに。 @
はリスト/配列を示し、%
はハッシュを示します。