AFAIK нет, вы не можете это сделать. Из соображений производительности функции CORE
никогда не смотрят на таблицу символов, ЕСЛИ во время компиляции не была объявлена эквивалентная функция CORE::GLOBAL
. К сожалению, вы должны написать эту CORE::GLOBAL
функцию и правильно настроить ее для симуляции соглашений о вызовах реальной функции. Некоторые функции CORE
не могут быть полностью воспроизведены без массовых взломов, например, print
и open
. Поскольку CORE::GLOBAL
является глобальным и влияет на весь ваш код и весь библиотечный код, вы должны быть уверены, что получите точно правильно или очень трудно отлаживать ошибки. Некоторые модули, такие как autodie , должны идти на все, чтобы обернуться вокруг основных функций.
Но здесь, позвольте мне показать вам, где находятся шкафчик с оружием и боеприпасы ...
my @return = eval "$function(\@args)";
... конечно, это огромная дыра в безопасности и обслуживании. Не делай этого.