use SRS::Utils;
use Data::Traverse qw(traverse);
my $d = [ { arr => [ 1,2 ], hash => { a => 'b', c => { d => 'e' } } } ];
traverse { pp $_ , $a, $b } $d;
Name "main::a" used only once: possible typo at ./test.pl line 12.
Name "main::b" used only once: possible typo at ./test.pl line 12.
("HASH", "d", "e")
("HASH", "a", "b")
("ARRAY", 1, undef)
("ARRAY", 2, undef)
while traversion do not see arr, hash and c
and I have not ability to rename hashkeys
it will be better to save data to one variable $a and keyname for $b, so printing data I no need to switch between variables