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.