|laziness, impatience, and hubris|
Regarding Apache. You can insure that .cgi, .pl scripts fire off (are executed by Perl) on a per-directory basis, by adding the following within the <Directory "/path/some/where"> sections
But the following bits Options stanza, must also be enabled
Probably most importantly, the ExecCGI bit.
Probably of most concern to you, is your /cgi-bin Directory stanza, in Apache. Following is a complete block for it, that should provide for your needs
Make sure that you modify, or UNcomment the line in your httpd.conf. Do not simply add the one I've provided here. :)
Also note the Options ExecCGI must be enabled within the Directory section the line above lives in.
Last, but not least; The following line
must exist within your "Dynamic Shared Object (DSO) Support" section. Yours may (probably) looks a little different, but it must exist, and must not be commented -- have a hash # at the beginning of it.
I realize this is a bit "choppy", and does not read like a book. But I've done so intentionally. As each section has a different meaning/affect, and will better help you discover which parts are pertinent to the problem you are having. While I don't use Apache. I did use it in it's very beginnings, when it was simply known as HTTPd. Given it was back then simply a "patched-up" version of NCSA -- NCSA HTTPd. It took on the name "Apache" -- or "A patch". Since then, I've written, and use my own HTTPd server.
Hope this helps, and best wishes.
--ChrisEDIT: almost forgot to note; in all cases, look for a file named .htaccess in any of your web folders. If it exists, you can make the changes, or comment # out any conflicting lines. It is probably always best to use the httpd.conf file, and not .htaccess. If for no other reason, because the server will run faster, and ultimately, causes less load on it.
Yes. What say about me, is true.