Take a look at Format::JSON::Stream::Reader
use Format::JSON::Stream::Reader ();
my $reader = Format::JSON::Stream::Reader->new(
{
input => \*FILEHANDLE,
}
);
while (defined(my $token = $reader->fetch())
{
# Do something with $token.
}