Note:
I'm doing a lot of handwaving here... I seem to recall having read about this, but I've not looked it up to confirm my beliefs. I'll look it up later, I promise.
I was always under the impression that the @INC variable is fixed once you compile perl.exe
That's right. That's even the case for Perl on Windows... Except: perl itself
changes the directories found in the hardwired @INC inside the perl exectutable, into directories relative to where it currently resides. That happens to
lib (relative position to perl:
../lib) and
site/lib (relative position:
../site/lib), where the perl executable resides in
bin, relative to the perl installation root.
You could say it's a simple s/^$HARDWIRED_ROOT/$CURRENT_ROOT/, done inside perl.