Your power user and your user with limited skill will have different levels of access to the server. A CPAN module is certainly the best way but completely impossible for many users. Without shell access CPAN installation is difficult or impossible. Considering which directories to put files is academic if the user does not have access to anything but a cgi-bin. Some hosts I have come across will even deploy installations of Perl that won’t accept relative file paths.
in reply to Re^2: Best practices for packaging CGI scripts
in thread Best practices for packaging CGI scripts
The most important thing for getting CGI scripts to run on these limited environments is simplicity. They should not require additional CPAN modules. In my opinion the best approach is using an installation script to retrieve variables from the user. The script will be as simple as possible to ensure that it will run in any environment. The users variables can then be entered and checked before more complex parts of the program are used. Far too many perl CGI scripts simply stop working when they have incorrect user entered variables. With respect to system wide installation CPAN installation is certainly the best way to go.