用Perl解析JSON时遇到问题

用Perl解析JSON时遇到问题,perl,json,parsing,Perl,Json,Parsing,我有一个JSON文件,我正试图用Perl解析它。到目前为止,我已经: use strict; use warnings; use JSON; open my $fh, "/Users/arjunnayini/Desktop/map_data.json"; my @decoded_json = @{decode_json($fh)}; 但我得到一个错误,我有一个: 格式错误的JSON字符串,既不是数组、对象、数字、字符串也不是原子,字符偏移量为0(“GLOB(0x100804ed0)

我有一个JSON文件,我正试图用Perl解析它。到目前为止,我已经:

use strict;
use warnings;
use JSON;

open my $fh, "/Users/arjunnayini/Desktop/map_data.json";   


my @decoded_json = @{decode_json($fh)};
但我得到一个错误,我有一个: 格式错误的JSON字符串,既不是数组、对象、数字、字符串也不是原子,字符偏移量为0(“GLOB(0x100804ed0)”之前)


我相当确定JSON文件的格式正确,所以我不确定这是哪里出了问题。有什么建议吗?

假设您对JSON的调用是正确的,您需要先将文件读入:

#!/usr/bin/perl

use strict;
use warnings;
use JSON;

my $json;
{
  local $/; #enable slurp
  open my $fh, "<", "/Users/arjunnayini/Desktop/map_data.json";
  $json = <$fh>;
} 

my @decoded_json = @{decode_json($json)};
#/usr/bin/perl
严格使用;
使用警告;
使用JSON;
我的$json;
{
本地$/#启用slurp

打开我的$fh”,或:local@ARGV=“/Users/arjunnayini/Desktop/map_data.json”;$json=;是的,有其他方法可以先在文件中发出声音。我的示例显示了一个常见的习惯用法。