use strict; use warnings; use JSON; use Data::Dumper; $/ = undef; open my $fh, '<', 'charity.json'; my $data = <$fh>; close $fh; print unpack("W", substr($data, 0, 1)) . ' - ' . unpack("W", substr($data, 1, 2)) . ' - ' . unpack("W", substr($data, 2, 3)) . "\n\n"; $data =~ s/.*?\[/\[/; # <-- fudge to clear character(s) my $json = decode_json $data; print Dumper $json; Using this JSON file as a test... [{"registered":true,"insolvent":false,"administration":true,"test":false}]