Path::Tiny does not try to work for anything except Unix-like and Win32 platforms. Even then, it might break if you try something particularly obscure or tortuous. (Quick! What does this mean: ///../../..//./././a//b/.././c/././? And how does it differ on Win32?)
All paths are forced to have Unix-style forward slashes. Stringifying the object gives you back the path (after some clean up).
File input/output methods flock handles before reading or writing, as appropriate (if supported by the platform and/or filesystem).
The *_utf8 methods (slurp_utf8, lines_utf8, etc.) operate in raw mode. On Windows, that means they will not have CRLF translation from the :crlf IO layer. Installing Unicode::UTF8 0.58 or later will speed up *_utf8 situations in many cases and is highly recommended. Alternatively, installing PerlIO::utf8_strict 0.003 or later will be used in place of the default :encoding(UTF-8).
This module depends heavily on PerlIO layers for correct operation and thus requires Perl 5.008001 or later.