in reply to Re^2: Problems Opening file with Perl where path has UTF8
in thread Problems Opening file with Perl where path has UTF8

You shouldn't rely on $^E to tell you there's been an error. You should only use $^E when you know an error has occured.

The nul is necessary for the system to know where the string ends. Perl will automatically add an ASCII nul (1 byte) when converting from an SV* to a char*, but an UTF16LE nul (2 bytes) is needed here.