Spec-Zone.ru › Perl 5.36

Cwd

СОДЕРЖАНИЕ

  • ИМЯ
  • СИНОПСИС
  • ОПИСАНИЕ
    • getcwd и друзья
    • abs_path и друзья
    • $ENV{PWD}
  • ПРИМЕЧАНИЯ
  • АВТОР
  • АВТОРСКИЕ ПРАВА
  • СМОТРИТЕ ТАКЖЕ

ИМЯ

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 для подробностей.

СМОТРИТЕ ТАКЖЕ

File::chdir

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API