Spec-Zone.ru › Perl 5.34

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.

Поддерживается Ken Williams <KWILLIAMS@cpan.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.34.0/Cwd

Spec-Zone.ru

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