From my understanding Perl traditionally has only included core functionality, and people install additional libraries to do all sorts of useful (and sometimes very basic) things. But at some point there came to be "core libraries" which are shipped with Perl by default – so you can use these libraries without installing them.
Coming from Python I'm curious how this is managed. Specifically:
- How are libraries chosen?
- Do the libraries still have their own version numbers and release schedules?
- What kind of backward-compatibility guarantees do you have when using these libraries?
- Is it common to upgrade or downgrade these libraries in a system? Is this done system-wide or more specifically?
- If there's a bug fix that requires an API change, how does that happen?
- How is functionality added to these core libraries (if it is at all)?
Switch
.@INC
) not their fault, and finally fixed with 5.12. This is the reason where the recommendation comes from to compile your own perl and not mess with the system installation. With 5.12, you are supposed to just use CPAN to install an upgraded version of a core module, and it gets installed addtionally to the one shipped with the system, but since the new one comes before the old one in the include path, the new one gets loaded when youuse
/require
it.