У меня есть Perl script (отдельная программа), которая содержит некоторые подмножества, которые я бы хотел использовать в других сценариях. Из-за ограничений среды выполнения я не могу переместить функции в общий файл .pm
.
Можно ли отличить, был ли script запущен как автономная программа или он был require
ed/do
ed другим script?
Единственное, что я мог найти, это использовать caller
на верхнем уровне: автономная программа не имеет никакого вызывающего абонента, а когда require
ed caller
показывает, кто загрузил модуль. Есть ли лучшее решение?