in reply to Config.pm file and @INC array

AFAIK, the basic content of the @INC list is determined from:   (in order...)

  1. use lib directives
  2. the PERL5LIB environment-variable
  3. the -m command-line parameter
  4. a hard-coded base list built into Perl itself.
(See: perldoc perlrun)

It superficially appears to me that the hard-coded base list might not have been specified as you intended on those Unix boxes. perl -V (note: uppercase “V”) should give you a lot of useful information.

Especially for production (web...) applications, I tend to steadfastly use use lib directives. (This is, of course, essential with “taint mode.”) I like for the behaviors of the system to be absolutely predictable and repeatable.

To that end, I also regularly use use FindBin qw($Bin);, which places into the variable $Bin the location of the current executable. If the sub-directory structure of the app is known but the root-directory name is not (e.g. web app on shared-hosting), you don't have to diddle with filenames quite so much when moving from development to production servers.