#!/usr/bin/perl use strict; use warnings; use Test::More; use JSON::SL; use Devel::Peek; use Data::Dumper; my $sl = JSON::SL->new(); my $h = {}; my $v = []; ok($sl->referrent_is_writeable($h), "Hash is writeable"); ok($sl->referrent_is_writeable(\$v), "Value (arrayref) is writeable"); $h->{something} = $v; #make it read-only $sl->make_referrent_readonly($h); ok(!$sl->referrent_is_writeable($h), "Reference is read-only"); $sl->make_referrent_readonly(\$h->{something}); ok(!$sl->referrent_is_writeable(\$h->{something}), "Value is read-only"); eval { delete $h->{something}; }; ok($@, "Got error for modifying read-only hash ($@)"); $sl->make_referrent_writeable($h); ok($sl->referrent_is_writeable($h), "Variable is writeable once more"); delete $h->{something}; done_testing();