Я не хочу создавать подпроцесс для каждого использования, так как он мне нужен несколько сотен тысяч раз (это специфический тип анализатора данных).
Плохая политика. Базовые оболочки Linux делают этот вид процесса постоянно разветвленным. Предотвращение нереста процессов является плохим ограничением.
Однако вы можете сделать это тривиально.
python prepare_data.py | perl my_magic_module.pl | python whatever_else.py
Оберните ваш магический модуль простым Perl-скриптом, который читает из stdin, выполняет магические действия и пишет в стандартный вывод.
Разбейте ваш Python на две части: часть, выполненную перед вызовом perl, и часть, выполненную после вызова perl.
Соберите высокопроизводительный конвейер, который (a) выполняет все три шага одновременно и (b) не обрабатывает много процессов.
Это, кстати, также будет использовать каждое ваше ядро.