Rules / Types, classes & roles / domain-specific

IO::Spec::QNX Reference

Platform specific operations on file and directory paths QNX

What it is #

Routines #

Signatures are reproduced from the documentation, including their declared return types. A routine listed here is part of the type's published interface; whether Raku++ implements it is a separate question, answered by the examples below.

method canonpath #

method canonpath(Str() $path, :$parent --> Str:D)

Returns Str:D.

Returns a string that is a canonical representation of $path. If :$parent is set to true, will also clean up references to parent directories. NOTE: the routine does not access the filesystem, so no symlinks are followed.

Examples, run three ways #

Every example below comes from the official documentation, together with the output that documentation asserts. Each was then executed by Rakudo and by Raku++ when this page was built. Where the three agree, one result is shown; where they do not, all three are — because which of them is wrong is exactly the information worth having.

1 no-output · 3 ok

class IO::Spec::QNX is IO::Spec::Unix { }

Not executed: the documentation states no expected output for this example.

IO::Spec::QNX.canonpath("foo//../bar/../ber").say;
# OUTPUT: «foo/../bar/../ber␤»
Output
foo/../bar/../ber

Documentation, Rakudo and Raku++ all agree.

IO::Spec::QNX.canonpath("foo///./../bar/../ber").say;
# OUTPUT: «foo/../bar/../ber␤»
Output
foo/../bar/../ber

Documentation, Rakudo and Raku++ all agree.

IO::Spec::QNX.canonpath("foo///./../bar/../ber", :parent).say;
# OUTPUT: «ber␤»
Output
ber

Documentation, Rakudo and Raku++ all agree.