The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl

use 5.010;
use strict;
use warnings;

use Test::Exception;
use Test::More 0.96;

use SHARYANTO::Hash::Util qw(rename_key replace_hash_content);

subtest "rename_key" => sub {
    my %h = (a=>1, b=>2);
    dies_ok { rename_key(\%h, "c", "d") } "old key doesn't exist -> die";
    dies_ok { rename_key(\%h, "a", "b") } "new key exists -> die";
    rename_key(\%h, "a", "a2");
    is_deeply(\%h, {a2=>1, b=>2}, "success 1");
};

subtest "replace_hash_content" => sub {
    my $a = {a=>1,b=>2};
    my $refa = "$a";
    replace_hash_content($a, c=>3);
    is_deeply($a, {c=>3}, "content changed");
    is("$a", $refa, "refaddr doesn't change");
};

DONE_TESTING:
done_testing();