## Why oh why does it try to modify the input!?
my $uPath = encode( 'UTF-16LE', $_ = "\\\\?\\c:\\some\\path", 1 );
####
use Encode;
print encode( 'UTF-16LE', $_ = "\\\\?\\C:\\some\\path", 1 );;
\ \ ? \ C : \ s o m e \ p a t h
$uPath = encode( 'UTF-16LE', $_ = "\\\\?\\C:\\some\\path", 1 );;
print unpack 'H*', $uPath;;
5c005c003f005c0043003a005c0073006f006d0065005c007000610074006800
##
##
HANDLE FindFirstFileW( LPCTSTR lpFileName, LPWIN32_FIND_DATA lpFindFileData )
LPTCSTR => long pointer to (array of) TCHAR
TCHAR => wchar_t