如何在Perl中将简单的哈希转换为json?

我使用以下代码来编码一个简单的哈希
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 %rec_hash = ('name'=>$name,'ttl'=>$ttl);

实际上使用encode_json方法(传递一个hashref):

my $json = encode_json \%rec_hash;

输出结果:

print $json;

而且,我可以期待没有错误

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...