No problem running it outside of Perl. Thats when it return the error: "Script error: failed to find/open script! ".

You don't see this error when you run it, you just see the output as it should be. But if you pipe the result like this:

code:
kix32 test.kix > test1.txt 2 > test2.kix

You will find the error code in test2.txt together with the output it should give.

I've placed @error all over the script, including the WMIQuery function, and nowhere does it return any errors.