Spec-Zone .ru
спецификации, руководства, описания, API
Spec-Zone .ru
спецификации, руководства, описания, API
Библиотека разработчика Mac Разработчик
Поиск

 

Эта страница руководства для  версии 10.9 Mac OS X

Если Вы выполняете различную версию  Mac OS X, просматриваете документацию локально:

Читать страницы руководства

Страницы руководства предназначаются как справочник для людей, уже понимающих технологию.

  • Чтобы изучить, как руководство организовано или узнать о синтаксисе команды, прочитайте страницу руководства для страниц справочника (5).

  • Для получения дополнительной информации об этой технологии, ищите другую документацию в Библиотеке Разработчика Apple.

  • Для получения общей информации о записи сценариев оболочки, считайте Shell, Пишущий сценарий Учебника для начинающих.



Path::Class(3)                       User Contributed Perl Documentation                      Path::Class(3)



NAME
       Path::Class - Cross-platform path specification manipulation

VERSION
       version 0.26

SYNOPSIS
         use Path::Class;

         my $dir  = dir('foo', 'bar');       # Path::Class::Dir object
         my $file = file('bob', 'file.txt'); # Path::Class::File object

         # Stringifies to 'foo/bar' on Unix, 'foo\bar' on Windows, etc.
         print "dir: $dir\n";

         # Stringifies to 'bob/file.txt' on Unix, 'bob\file.txt' on Windows
         print "file: $file\n";

         my $subdir  = $dir->subdir('baz');  # foo/bar/baz
         my $parent  = $subdir->parent;      # foo/bar
         my $parent2 = $parent->parent;      # foo

         my $dir2 = $file->dir;              # bob

         # Work with foreign paths
         use Path::Class qw(foreign_file foreign_dir);
         my $file = foreign_file('Mac', ':foo:file.txt');
         print $file->dir;                   # :foo:
         print $file->as_foreign('Win32');   # foo\file.txt

         # Interact with the underlying filesystem:

         # $dir_handle is an IO::Dir object
         my $dir_handle = $dir->open or die "Can't read $dir: $!";

         # $file_handle is an IO::File object
         my $file_handle = $file->open($mode) or die "Can't read $file: $!";

DESCRIPTION
       "Path::Class" is a module for manipulation of file and directory specifications (strings describing
       their locations, like '/home/ken/foo.txt' or 'C:\Windows\Foo.txt') in a cross-platform manner.  It
       supports pretty much every platform Perl runs on, including Unix, Windows, Mac, VMS, Epoc, Cygwin,
       OS/2, and NetWare.

       The well-known module "File::Spec" also provides this service, but it's sort of awkward to use well,
       so people sometimes avoid it, or use it in a way that won't actually work properly on platforms
       significantly different than the ones they've tested their code on.

       In fact, "Path::Class" uses "File::Spec" internally, wrapping all the unsightly details so you can
       concentrate on your application code.  Whereas "File::Spec" provides functions for some common path
       manipulations, "Path::Class" provides an object-oriented model of the world of path specifications
       and their underlying semantics.  "File::Spec" doesn't create any objects, and its classes represent
       the different ways in which paths must be manipulated on various platforms (not a very intuitive
       concept).  "Path::Class" creates objects representing files and directories, and provides methods
       that relate them to each other.  For instance, the following "File::Spec" code:

        my $absolute = File::Spec->file_name_is_absolute(
                         File::Spec->catfile( @dirs, $file )
                       );

       can be written using "Path::Class" as

        my $absolute = Path::Class::File->new( @dirs, $file )->is_absolute;

       or even as

        my $absolute = file( @dirs, $file )->is_absolute;

       Similar readability improvements should happen all over the place when using "Path::Class".

       Using "Path::Class" can help solve real problems in your code too - for instance, how many people
       actually take the "volume" (like "C:" on Windows) into account when writing "File::Spec"-using code?
       I thought not.  But if you use "Path::Class", your file and directory objects will know what volumes
       they refer to and do the right thing.

       The guts of the "Path::Class" code live in the "Path::Class::File" and "Path::Class::Dir" modules, so
       please see those modules' documentation for more details about how to use them.

   EXPORT
       The following functions are exported by default.

       file
           A synonym for "Path::Class::File->new".

       dir A synonym for "Path::Class::Dir->new".

       If you would like to prevent their export, you may explicitly pass an empty list to perl's "use",
       i.e. "use Path::Class ()".

       The following are exported only on demand.

       foreign_file
           A synonym for "Path::Class::File->new_foreign".

       foreign_dir
           A synonym for "Path::Class::Dir->new_foreign".

Notes on Cross-Platform Compatibility
       Although it is much easier to write cross-platform-friendly code with this module than with
       "File::Spec", there are still some issues to be aware of.

          On some platforms, notably VMS and some older versions of DOS (I think), all filenames must have
           an extension.  Thus if you create a file called foo/bar and then ask for a list of files in the
           directory foo, you may find a file called bar. instead of the bar you were expecting.  Thus it
           might be a good idea to use an extension in the first place.

AUTHOR
       Ken Williams, KWILLIAMS@cpan.org

COPYRIGHT
       Copyright (c) Ken Williams.  All rights reserved.

       This library is free software; you can redistribute it and/or modify it under the same terms as Perl
       itself.

SEE ALSO
       Path::Class::Dir, Path::Class::File, File::Spec



perl v5.16.2                                     2013-08-25                                   Path::Class(3)

Сообщение о проблемах

Способ сообщить о проблеме с этой страницей руководства зависит от типа проблемы:

Ошибки содержания
Ошибки отчета в содержании этой документации к проекту Perl. (См. perlbug (1) для инструкций представления.)
Отчеты об ошибках
Сообщите об ошибках в функциональности описанного инструмента или API к Apple через Генератор отчетов Ошибки и к проекту Perl, использующему perlbug (1).
Форматирование проблем
Отчет, форматирующий ошибки в интерактивной версии этих страниц со ссылками на отзыв ниже.