It's not a particularly good idea to overwrite the default Perl installation with a custom one, since software updates and the like may make assumptions regarding the default system Perl. If you're going to roll your own Perl, it's best to install it to /usr/local or another out-of-the-way location. To build and install Perl and many of the thousands of useful Perl modules you need to have a compiler. For macOS the easiest way to get a compiler is to install 'Command Line Tools for Xcode' (about 100 Megs), either directly or through Xcode (several Gigs), both.
Version 5.18.2: Changes to Existing Documentation:
- perlrepository has been restored with a pointer to more useful pages.
- perlhack has been updated with the latest changes from blead.
- Perl 5.18.1 introduced a regression along with a bugfix for lexical subs. Some B::SPECIAL results from B::CV::GV became undefs instead. This broke Devel::Cover among other libraries. This has been fixed. [perl #119351]
- Perl 5.18.0 introduced a regression whereby [:^ascii:], if used in the same character class as other qualifiers, would fail to match characters in the Latin-1 block. This has been fixed. [perl #120799]
- Perl 5.18.0 introduced a regression when using ->SUPER::method with AUTOLOAD by looking up AUTOLOAD from the current package, rather than the current package’s superclass. This has been fixed. [perl #120694]
- Perl 5.18.0 introduced a regression whereby -bareword was no longer permitted under the strict and integer pragmata when used together. This has been fixed. [perl #120288]
- Previously PerlIOBase_dup didn't check if pushing the new layer succeeded before (optionally) setting the utf8 flag. This could cause segfaults-by-nullpointer. This has been fixed.
- A buffer overflow with very long identifiers has been fixed.
- A regression from 5.16 in the handling of padranges led to assertion failures if a keyword plugin declined to handle the second ‘my’, but only after creating a padop. This affected, at least, Devel::CallParser under threaded builds. This has been fixed.
- The construct $r=qr/.../; /$r/p is now handled properly, an issue which had been worsened by changes 5.18.0. [perl #118213]