FindBin
СОДЕРЖАНИЕ
ИМЯ
FindBin - Определение каталога исходного perl-скрипта
СИНТАКСИС
use FindBin;
use lib "$FindBin::Bin/../lib";
or
use FindBin qw($Bin);
use lib "$Bin/../lib"; ОПИСАНИЕ
Находит полный путь к каталогу bin скрипта, чтобы позволить использование путей, относительных к каталогу bin.
Это позволяет пользователю настроить древовидную структуру каталогов для некоторого программного обеспечения с каталогами <root>/bin и <root>/lib, и затем вышеприведенный пример позволит использовать модули в каталоге lib, не зная, где установлена структура программного обеспечения.
Если perl вызван с опцией -e или perl-скрипт считывается из STDIN, тогда FindBin устанавливает и $Bin, и $RealBin в текущий каталог.
ЭКСПОРТИРУЕМЫЕ ПЕРЕМЕННЫЕ
$Bin - path to bin directory from where script was invoked
$Script - basename of script from which perl was invoked
$RealBin - $Bin with all links resolved
$RealScript - $Script with all links resolved ИЗВЕСТНЫЕ ПРОБЛЕМЫ
Если есть два модуля, использующих FindBin из разных каталогов под одним интерпретатором, это не сработает. Поскольку FindBin использует блок BEGIN, он будет выполнен только один раз, и только первый вызывающий получит правильный результат. Это проблема в mod_perl и других персистентных Perl-средах, где не следует использовать этот модуль. Что также означает, что следует избегать использования FindBin в модулях, которые вы планируете разместить на CPAN. Чтобы убедиться, что FindBin будет работать, вызовите функцию again:
use FindBin;
FindBin::again(); # or FindBin->again; В предыдущих версиях FindBin не было функции again. Обходным путем было принудительное повторное выполнение блока BEGIN:
delete $INC{'FindBin.pm'};
require FindBin; АВТОРЫ
FindBin поддерживается как часть основного распределения perl. Пожалуйста, отправляйте отчеты об ошибках на <perlbug@perl.org> с использованием программы perlbug, включенной в perl.
Graham Barr <gbarr@pobox.com> Nick Ing-Simmons <nik@tiuk.ti.com>
АВТОРСКИЕ ПРАВА
Авторские права (c) 1995 Graham Barr & Nick Ing-Simmons. Все права защищены. Эта программа является свободной программой; вы можете перераспределять и/или изменять ее на тех же условиях, что и Perl сам по себе.
© 1993–2021 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.34.0/FindBin