So the next question is, what can I do now?
compare and contrast
Each proc comes with STDIN/STDOUT/STDERR/@ARGV/%ENV/CWD so you dump %ENV/Cwd between the mod_perl and cgi versions, between the successfull and failed ones, and then you check to see whats different
Do the same for each function ( open or die ... ; chdir or die ...; ...)
I don't know, but that cd /test/repo could fail for some reason ... so verify everything, Git::Wrapper can help ( How to script git with perl and Git::Wrapper | David Golden )
If what you've posted is really the misbehaving code, it might be that you need to sanitize %ENV
General notions you should be aware of as well as lists of things to check are found in Coping with Scoping , CGI to mod_perl Porting. mod_perl Coding guidelines , brian's Guide to Solving Any Perl Problem, CGI Help Guide , Troubleshooting Perl CGI scripts , On debugging, verify everything, talk to teddybear ...
In reply to Re^3: is there a way to (temporarily) switch off mod_perl caching/variable storing? (contrast compare)
by Anonymous Monk