Alas, it's still a ridiculous situation. Not counting the various work-arounds using modules from the Win32/Win32API namespace (tye and ikegami usually give answers involving Windows-specific code, see Super Search), you can use Path::Class::Unicode and PerlIO::fse for reasonably portable code.