Perl 5.26.0 representa, aproximadamente, 13 meses de desarrollo desde Perl 5.24.0 y contiene aproximadamente 360 000 líneas modificadas en 2600 archivos por parte de 86 autores.
Las novedades que trae son muchas. Y algunas, muy importantes:
- "." ya no se incluye en @INC, por razones de seguridad. Este es quizás de los cambios que van a generar más problemas, pues obliga a añadir excepciones en el código si queremos acceder a bibliotecas que estén en el mismo directorio que la aplicación
- do ahora puede lanzar una advertencia de obsolescencia si se intenta ejecutar un programa en el "."
- se deben escapar las llaves "{" literales, en las expresiones regulares ("\{" o "[{]") .
- las subrutinas léxicas ya no son experimentales
- sangrado en los documentos embebidos (!) (mejor sangrado de los textos incluidos)
- nuevo modificador de expresión regular /xx (permite poner espacios en las clases de caracteres)
- @{^CAPTURE}, %{^CAPTURE} y %{^CAPTURE_ALL} (exponer las capturas bajo una variable con nombre)
- declarar una referencia a una variable (my \$a = \$b;, experimental)
- soporte para Unicode v9.0
- \p{script} usa la propiedad mejorada Script_Extensions
- Perl ahora puede hacer cotejo por defecto en las configuraciones regionales de UTF-8 en las plataformas que lo soporten
- mejor cotejo regional de las cadenas que contengan caracteres NULL
- subrutinas CORE para las funciones hash y array se pueden llamar vía referencia ( &CORE::keys(\%hash) )
- nueva función hash para las compilaciones en 64 bits
- cambio en lo que devuelve scalar(%hash) (ahora devuelve el número de claves utilizadas)
- eliminado el pragma encoding
- eliminado POSIX::tmpnam()
- require ::Foo::Bar es ahora ilegal
- ya no se permiten nombres de variables con un carácter de control literal