In IO::Path§

See primary documentation in context for method cleanup

method cleanup(IO::Path:D: --> IO::Path:D)

Returns a new path that is a canonical representation of the invocant path, cleaning up any extraneous path parts:

"foo/./././..////bar".IO.cleanup.say;      # OUTPUT: «"foo/../bar".IO␤»
IO::Path::Win32.new("foo/./././..////bar")
    .cleanup.say; "foo\..\bar".IO;         # OUTPUT: «"foo\..\bar".IO␤»

Note that no filesystem access is made. See also resolve.