NAME
    Sah::Schemas::Path - Schemas related to filesystem path

VERSION
    This document describes version 0.016 of Sah::Schemas::Path (from Perl
    distribution Sah-Schemas-Path), released on 2021-07-17.

SAH SCHEMAS
    *   dirname

        Filesystem directory name.

        This schema is basically string with some checks and prefilters. Why
        use this schema instead of plain ol' str? Mainly to give you the
        ability to change tilde to user's home directory, e.g. "~/foo" into
        "/home/someuser/foo". Normally this expansion is done by a Unix
        shell, but sometimes your program receives an unexpanded path, e.g.
        when you get it from some config file.

        See also more OS-specific schemas like "dirname::unix", which adds
        some more checks (e.g. filename cannot contain forward slash and
        each component cannot be longer than 255 characters) and
        preprocessing (e.g. stripping extraneous slashes like "foo//bar"
        into "foo/bar".

        What's the difference between this schema and "filename"? The
        default completion rule. This schema's completion by default only
        includes directories.

    *   filename

        Filesystem file name.

        This schema is basically string with some checks and prefilters. Why
        use this schema instead of plain ol' str? Mainly to give you the
        ability to change tilde to user's home directory, e.g. "~/foo.txt"
        into "/home/someuser/foo.txt". Normally this expansion is done by a
        Unix shell, but sometimes your program receives an unexpanded path,
        e.g. when you get it from some config file.

        See also more OS-specific schemas like "filename::unix", which adds
        some more checks (e.g. filename cannot contain forward slash and
        each component cannot be longer than 255 characters) and
        preprocessing (e.g. stripping extraneous slashes like "foo//bar"
        into "foo/bar".

        What's the difference between this schema and "dirname"? The default
        completion rule. This schema's completion by default only includes
        files and not directories.

    *   pathname

        Filesystem path name.

        This schema is basically string with some checks and prefilters. Why
        use this schema instead of plain ol' str? Mainly to give you the
        ability to change tilde to user's home directory, e.g. "~/foo" into
        "/home/someuser/foo". Normally this expansion is done by a Unix
        shell, but sometimes your program receives an unexpanded path, e.g.
        when you get it from some config file.

        See also more OS-specific schemas like "pathname::unix", which adds
        some more checks (e.g. pathname cannot contain forward slash and
        each component cannot be longer than 255 characters) and
        preprocessing (e.g. stripping extraneous slashes like "foo//bar"
        into "foo/bar".

        What's the difference between this schema and "filename" and
        "dirname"? The default completion rule. This schema's completion by
        default includes files as well as directories.

    *   pathnames

        List of filesystem path names.

        Coerces from string by expanding the glob pattern in the string.

HOMEPAGE
    Please visit the project's homepage at
    <https://metacpan.org/release/Sah-Schemas-Path>.

SOURCE
    Source repository is at
    <https://github.com/perlancar/perl-Sah-Schemas-Path>.

BUGS
    Please report any bugs or feature requests on the bugtracker website
    <https://rt.cpan.org/Public/Dist/Display.html?Name=Sah-Schemas-Path>

    When submitting a bug or request, please include a test-file or a patch
    to an existing test-file that illustrates the bug or desired feature.

SEE ALSO
    Sah - specification

    Data::Sah

AUTHOR
    perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2021, 2020, 2019, 2018, 2016 by
    perlancar@cpan.org.

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