I'm a big fan of having multiple Perl installations on a single system. First, there's the default build on the system (5.005_03 under FreeBSD, 5.6.0 under OS X). Next, there's the build I use on a regular basis (either 5.6.1 or 5.8.0 these days).
Then there are the one-off test builds I have in a home directory somewhere. I like creating a test user with no privs to build and test a Perl configuration. If I can run a program in that configuration, I know that my program is good to go on a stock build (or a build with a known minimalist configuration). This helps me avoid problems where I forget a dependency and try to copy a module/script around.
I must be losing brain cells or something. I've done this many times before, but today I spent a few hours trying to upgrade Bundle::CPAN on the distributions installed in /Users/test/..., and virtually every build was failing. I soon found out that perl Makefile.PL was being built with /usr/bin/perl, not my private build. Of course I could not update libraries in /System/Library or /Library; that's why all of the Perl libraries should be under /Users/test/lib.
Eventually, I found the source of the problem, stepping through CPAN.pm. If CPAN.pm is invoked with a perl using a relative path, it looks for a perl with an absolute path and finds /usr/bin/perl, not my private build. Running CPAN.pm with a fully qualified path to my local Perl (/Users/test/bin/perl -MCPAN -e shell) makes everything work just the way it should.
Somehow, I think I'll be forgetting this in a few weeks. Maybe it's time to start taking that Ginko...
Submitted a fix to Jarkko for MakeMaker, it was fixed as of 5.6.1. There may be another problem somewhere. I remember that it related to abuses of parameters named PERL (which was supposed to refer to "any perl, possibly just a miniperl, of any version," but was used as if it was the perl to build with) and FULLPERL, which was supposed to be the actual perl you invoked. I think I transformed a breadth-first search for "any perl," to a depth-first search to provoke it into finding the proper one more often, but that may not have been the 100% correct fix, and it may occur elsewhere besides MakeMaker. (As seems to be your case with CPAN.pm)
Wow; something I actually knew a bit about. That was the only patch I've ever submitted.