use Carp; # time passes... sub get_func { my $func_name = shift; my $pack = caller(); UNIVERSAL::can($pack, $func_name) || croak("Function '$func_name' not found in package '$pack'"); } # elsewhere what you wanted above becomes $register = get_func($command)->($register, $param);