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