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. Все права защищены.
Эта программа — свободное программное обеспечение; вы можете перераспределять её и/или изменять её на тех же условиях, что и Perl сам.
Части кода C в этой библиотеке являются авторскими правами (c) 1994, Regents of the University of California. Все права защищены. Лицензия на этот код совместима с лицензией остальной части дистрибутива — см. исходный код в Cwd.xs для подробностей.
СМОТРИТЕ ТАКЖЕ
© 1993–2023 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.38.0/Cwd