Я на самом деле придумала собственное решение, и мне любопытно, какой это будет прием.
Я написал скрипт, который читает Perl-скрипт и ищет операторы «use / require». Найдя их, он проверяет, является ли модуль частью стандартной библиотеки (ищет путь к модулю /perl5/\d+.\d+[\d.]+/), а затем переписывает строку use / require двумя различными способами в зависимости от использование.
Если требуется найдено:
{
... inline the entire module here...
}
Если , использовать найдено:
BEGIN {
... inline the entire module here...
}
Если использует , имеет импорт , сразу же следуйте приведенным выше инструкциям:
BEGIN { import Module ...imports seen... }
Я понимаю, что не не работает с модулями, которые используют XS, но я был в порядке с этим. В основном мне нужно поддерживать только чистые модули Perl.