in reply to Win32::OLE Word Search and Replace Script Runs Locally but not as part of CGI
Add some error reporting after interacting with the OLE object. It appears that $doc isn't being defined which would lead me to suspect that the OLE call is failing.
To be more explicit, change line 19 to:
my $doc = $word->Documents->Open("$oldfile") or die("Couldn't open $ol +dfile");
In Section Seekers of Perl Wisdom