I don't think you can change the 'COMPRESSED' status of a file using Win32::File. The MSDN documentation I'm looking at says that SetFileAttributes (which is what Win32::File is using) is unable to set the compression attribute - and I suspect that it is likewise unable to turn that attribute off. At least, I can't get the script that you posted to do the right thing, either - and it's not throwing any errors.