in reply to software inventory

I get the process cannot access the file because it is being used by another process...

I'm not terribly surprised:

open $Outfile, ">$PC.csv" or die "Unable to open $PC.csv\n"; system ( "ver > $PC.CSV");

What do you intend this code to do?