Cwd
СОДЕРЖАНИЕ
ИМЯ
Cwd — получить путь к текущей рабочей директории
СИНОПСИС
use Cwd;
my $dir = getcwd;
use Cwd 'abs_path';
my $abs_path = abs_path($file); ОПИСАНИЕ
Этот модуль предоставляет функции для определения пути к текущей рабочей директории. Рекомендуется использовать getcwd (или другую функцию *cwd()) во всех частях кода для обеспечения переносимости.
По умолчанию, он экспортирует функции cwd(), getcwd(), fastcwd() и fastgetcwd() (и, на Win32, getdcwd()) в пространство имён вызывающего кода.
getcwd и друзья
Каждая из этих функций вызывается без аргументов и возвращает абсолютный путь текущей рабочей директории.
- getcwd
-
my $cwd = getcwd();Возвращает текущую рабочую директорию. В случае ошибки возвращает
undef, и$!устанавливается для указания ошибки.Вызывает функцию POSIX getcwd(3) или переопределяет её, если она недоступна.
- cwd
-
my $cwd = cwd();cwd() — наиболее естественная форма для текущей архитектуры. Для большинства систем она идентична `pwd` (но без завершающего символа новой строки).
- fastcwd
-
my $cwd = fastcwd();Более рискованная версия getcwd(), но потенциально быстрее.
Возможно, она переместит вас из директории, в которую потом невозможно будет вернуться. Если fastcwd обнаружит проблему, она вернёт undef, но, вероятно, оставит вас в другой директории. Для повышения безопасности, если всё прошло успешно, функция fastcwd() проверит, что она оставила вас в той же директории, в которой она начала. Если она изменилась, она
dieс сообщением "Нестабильный путь к директории, текущая директория была неожиданно изменена". Этого никогда не должно происходить. - fastgetcwd
-
my $cwd = fastgetcwd();Функция fastgetcwd() предоставлена как синоним для cwd().
- getdcwd
-
my $cwd = getdcwd(); my $cwd = getdcwd('C:');Функция getdcwd() также предоставлена для Win32, чтобы получить текущую рабочую директорию на указанном диске, так как Windows поддерживает отдельную текущую рабочую директорию для каждого диска. Если диск не указан, используется текущий диск.
Эта функция просто вызывает функцию библиотеки Microsoft C _getdcwd().
abs_path и друзья
Эти функции экспортируются только по запросу. Каждая из них принимает один аргумент и возвращает абсолютный путь для него. Если аргумент не указан, используется текущая рабочая директория.
- abs_path
-
my $abs_path = abs_path($file);Использует тот же алгоритм, что и getcwd(). Символические ссылки и компоненты относительного пути (".", "..") разрешаются для возвращения канонического пути, так же как и realpath(3). В случае ошибки возвращает
undef, с$!установленным для указания ошибки. - realpath
-
my $abs_path = realpath($file);Синоним для abs_path().
- fast_abs_path
-
my $abs_path = fast_abs_path($file);Более рискованная, но потенциально более быстрая версия abs_path.
$ENV{PWD}
Если вы хотите переопределить встроенную функцию chdir(),
use Cwd qw(chdir); то ваша переменная окружения PWD будет обновляться. Обратите внимание, что это произойдет только в том случае, если все пакеты, использующие chdir, импортируют её из Cwd.
ПРИМЕЧАНИЯ
-
Поскольку разделители путей отличаются на некоторых операционных системах ('/' на Unix, ':' на MacPerl и т. д.), мы рекомендуем использовать модули File::Spec, когда переносимость имеет значение.
-
На самом деле, в Mac OS функции
getcwd(),fastgetcwd()иfastcwd()являются псевдонимами функцииcwd(), которая в Mac OS вызывает `pwd`. Аналогично, функцияabs_path()является псевдонимом дляfast_abs_path().
АВТОР
Поддерживается perl5-porters <perl5-porters@perl.org>.
АВТОРСКИЕ ПРАВА
Авторские права (c) 2004 Perl 5 Porters. Все права защищены.
Эта программа является свободной программой; вы можете перераспределять её и/или изменять её в соответствии с теми же условиями, что и сам Perl.
Части C-кода в этой библиотеке защищены авторскими правами (c) 1994 Regents of the University of California. Все права защищены. Лицензия на этот код совместима с лицензией остальной части дистрибутива — пожалуйста, обратитесь к исходному коду в Cwd.xs для подробностей.
СМОТРИТЕ ТАКЖЕ
© 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.36.0/Cwd