I'm not sure if perl and all of the modules you are using are aware of this but try the solution from here
http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx There is another API which is not limited to 260 characters but 32768. This Unicode API can be addressed by using a '\\?\' prefix e.g. '\\?\C:\temp\' or for network shares '\\?\UNC\server\c$\temp'. See attached link for details.
Update: corrected wrong link.