in reply to chdir vs. shell behavior

Your shell has to execute the cd. So have the .login or whatever else is sourced by the shell say:
eval `theperlconfigstuff`
and have theperlconfigstuff print "cd /path/to/be/in"