my $pkg = ...; my $mod_file = ...; # require always returns true or an exception. eval { require $mod_file } or warn $@; my $sym = do { no strict 'refs'; ${ "${pkg}::" }{ 'f_preferred' } }; my $ref = *$sym{CODE};