I was referring to ActivePerl. If you override the suggested location and restore it to the normal location for programs, lots of things break later. Using the short-name alias instead works most of the time.
Re^3: Darwin and File::HomeDir
Replies are listed 'Best First'.
Short-name alias to "Program Files" already exists, and might be called PROGRA~1. That's where I installed. It sets entries to where its stuff is, using that string. But running something from the command line still sees the name "Program Files" unless you change the current working directory to the short alias explicitly first; programs that are smart and look up their actual location using the Win32 API get the real name, and perhaps other things.
Point is, it does not always work, and I've given up trying to put ActivePerl in a location other than directly under the root. Even then, it's a royal pain if a module is not already in their special repository, and if it's not pure Perl, you can forget it.
That's my experience from pre-release days when the company was called HIP, through around 5.6 when I stopped trying to install it other than where it likes to put it. In the early days I suggested that the installer simply use the short-name alias of the normal path or whatever path the user chose, and they told me directly that it's still not good enough which is why they still put it off the root.
Short-name alias to "Program Files" already exists, and might be called PROGRA~1.
I tried that. It didn't work well. The path would get expanded at times, and end up in the hands of something that couldn't handle the spaces.
Point is, it does not always work
I can personally attest that using a path other than a subdir of the root always works. None of my dozen installs are directly under the root, and I've installed thousands of modules (PP and XS, ppm and cpan). It's using a path with spaces that causes problems.
which is why they still put it off the root.
Like I said when you first said this, it isn't true. ActivePerl lets you choose where you want to put it. Only Strawberry Perl puts it in the root.