Project:Perl/5.26 Known Issues
Introduction
Perl 5.26 brings several incompatible changes, also as a consequence of fixing a security problem (bug #589680. While we have made sure that all resulting build failures within Gentoo are fixed, this may not be the case for runtime issues, and certainly can affect third-party code (e.g., "hand-installed" server applications).
If you use Gentoo as a production server, this will be a good time to set aside a seperate box for testing the side effects of this release on your platform, and you should assume this release will affect you in some way.
Global Deprecations / Breakages
No current directory in library loading path anymore
buildtime and runtime
Library path loading (@INC
) changes break many (bug #612408) things, see in detail the separate Project:Perl/Dot-In-INC-Removal page.
Typical error messages are
Can't locate inc:: ... in @INC (you may need to install the ... module) Can't locate t:: ... in @INC (you may need to install the ... module) do "foo.pl" failed, '.' is no longer in @INC; did you mean do "./foo.pl"?
Unescaped {
in Regexp
buildtime and runtime
Unescaped left braces {
in regular expressions have been deprecated already for some time and now cause compilation to fail.
Typical error messages are:
Unescaped left brace in regex is illegal in ...
OP_SIBLING/OP_PARENT internal changes
buildtime Changes in Perl internals breaks code around OP_SIBLING/OP_PARENT (changed in Perl 5.22 via option, default in 5.26).
Typical error messages are:
error: ... has no member named ‘op_sibling'
Removal of POSIX::tmpnam
runtime Removal of tmpname from POSIX causes some issues.
Typical error messages are:
Unimplemented: POSIX::tmpnam()
Encoding support
runtime Lexical encoding support has been removed
Further advice
More information on how to deal with Perl in Gentoo can be found on this wiki's Perl page.