Yes, the Lion OS does advance the installed Perl version, as is to be expected.

What I do is this: if the installed Perl is not acceptable to me, or if I need more than one version for testing purposes or what-have-you, I install them from-source into /usr/local/bin and make sure that the desired $PATH is set up in my .bash_profile. Just as with any ordinary Unix or Linux. Point being, I never touch the actual version that comes with any operating-system, because I don’t want to screw-up any system tools, vendor-provided updates and so on, “Lion or not, Mac or not.”

As for CPAN et al, it is strictly “same song, next verse.” I apply all of the techniques used for “installing Perl as a non-root user” to set up my own private PERL5LIB-referenced directory into which all of “my” CPAN modules and/or module-versions are installed. I set up my own (non administrative) “software maintenance” account, which, being an ex-VMer, I usually call maint. This is the user with read/write access to the directory in which I do the CPAN work (as well as /usr/local/bin), and it is the account that actually does all of it. (By design, it is not an Administrative user and has no special power, but it is the sole owner of all these things and it is the only one, other than root of course, who can affect them.)

When you do it this way, it no longer matters if you are running Lion or not, and you don’t have to worry about things breaking when you do upgrade the OS. As I said, I do this for OS/X, for any Unix, and for any Linux. I just pretend that my computer is a shared-hosting web server someplace (else), and do what I would (be obliged to) do there.

I have elected to wait to install Lion until shortly after Christmas. “Computer software like fine wine ... let it age.” This would not, however, dissuade me from purchasing a Macintosh with that OS installed upon it right now, if I deemed that I needed such a machine right now.

With regard to your questions about Win32:: and so-forth, Perl does know what kind of operating system it is running on. (Try perl -V with a capital “V.”) CPAN module installers will use this information to keep you from doing anything meaningless ... like installing Win32-specific support on a non-Win32 machine like a Mac, or AS400 specific modules on a non-AS400, and so on and on. Perl is engineered from the ground up to recognize multiple operating environments, and most ... :-D ... of the time it Does The Right Thing.™ It’s entirely up to your own good engineering judgment how platform-specific you wish to be. Platform-specific modules are more finely tailored to the needs of a particular platform and give-up portability altogether. During your project engineering sessions, (of course)prior to implementation, you must make your own decision.