('additional_test_module::'.$var1)->(object_vars($var1)); #### our %subs=('value X'=>\&module::subX, 'value Y'=>\&module::subY, 'somethingelse' => \&module::else); $var=get_the_var(); if (test($var)) { if (exists $subs{$var}) { $subs{$var}->(object_vars($var)) } else { signal_error($var) } }