=begin pod :kind("Type") :subkind("class") :category("domain-specific")

=TITLE class IO::Spec

=SUBTITLE Platform specific operations on file and directory paths

    class IO::Spec { }

Objects of this class are not used directly but as a sub-class specific to
the platform Raku is running on via the C<$*SPEC> variable which will contain
an object of the appropriate type.

The sub-classes are documented separately, with the platform-specific
differences documented in L<IO::Spec::Cygwin|/type/IO::Spec::Cygwin>, L<IO::Spec::QNX|/type/IO::Spec::QNX>,
L<IO::Spec::Unix|/type/IO::Spec::Unix> and L<IO::Spec::Win32|/type/IO::Spec::Win32>.

=head1 About sub-classes IO::Spec::*

The C<IO::Spec::*> classes provide low-level path operations. Unless
you're creating your own high-level path manipulation routines, you don't
need to use C<IO::Spec::*>. Use L«C<IO::Path>|/type/IO::Path» instead.

Beware that no special validation is done by these classes (e.g. check whether
path contains a null character). It is the job of higher-level classes, like
L«C<IO::Path>|/type/IO::Path», to do that.

=head1 Methods

=end pod

# vim: expandtab shiftwidth=4 ft=perl6
