use 5.010;
use strict;
use warnings;

use Data::Visitor::Tiny;

my $hoh = {
    a => { b => 1, c => 2 },
    d => { e => 3, f => 4 },
};

# print leaf (non-ref) values on separate lines (1 2 3 4)
visit( $hoh, sub { return if ref; say } );

# transform leaf value for a given key
visit(
    $hoh,
    sub {
        my ( $key, $valueref ) = @_;
        $$valueref = "replaced" if $key eq 'e';
    }
);
say $hoh->{d}{e}; # "replaced"

#
# This file is part of Data-Visitor-Tiny
#
# This software is Copyright (c) 2018 by David Golden.
#
# This is free software, licensed under:
#
#   The Apache License, Version 2.0, January 2004
#

# vim: set ts=4 sts=4 sw=4 et tw=75: