#!/usr/bin/perl use strict; use warnings; my %in_out = ( foo => 'bar', ); $in_out{foot}{bart} = sub { return "subsub"; }; my %test2 = ( insub => sub { my ($get2) = @_; my $resp = $get2->{foot}->bart(); say $resp; }, ); $test2{insub}->(\%in_out);