Domingo 22 de Diciembre de 2024, 07:10
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación Web y Scripting
»
Perl
»
Perl v5.36, liberado
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Perl v5.36, liberado (Leído 1495 veces)
explorer
Miembro activo
Mensajes: 69
Perl v5.36, liberado
«
en:
Lunes 30 de Mayo de 2022, 13:51 »
0
Ya tenemos
nueva versión de Perl, la v5.36
.
Perl 5.36.0 representa aproximadamente un año de desarrollo desde Perl 5.34.0 y contiene aproximadamente 250 000 líneas modificadas a lo largo de 200 archivos por parte de 82 autores.
Excluyendo los archivos autogenerados, documentación y herramientas de publicación, fueron aproximadamente 190 000 líneas modificadas en 1300 archivos .pm, .t, .c y .h.
Las
novedades
que trae (entre otras):
Cambios principales
signatures
deja de ser experimental (desde v5.20) y se activa por defecto
Código: Perl
use
v5
.
36
;
sub
add
(
$x
,
$y
)
{
return
$x
+
$y
;
}
Pero algunos elementos de las firmas de subrutina aún quedan como experimentales.
isa
considerado característica estable (desde v5.32), por lo que se activa por defecto. Consultar
perlop
.
se desactivan las características
indirect
y
multidimensional
.
Ya no se puede escribir
$x = new Class;
ni
$x = $hash{3,5,42};
Consultar
feature
.
la característica experimental
switch
(desde v5.10) se ha quitado de use v5.36. Se puede seguir usando (no recomendado), pero hay que activarla explícitamente.
nueva opción en línea de comandos,
-g
, es un alias de
-0777
. Consultar
perlrun
.
soporte para Unicode 14.0.
los "conjuntos regex" ya no se consideran experimentales (desde v5.18). Ejemplo:
/(?[ ( \p{Thai} + \p{Lao} ) & \p{Digit} ])/
Esta expresión casa con dígitos que son tanto Thai como Laosianos. Consultar
perlrecharclass
.
los vistazos hacia atrás de longitud variable en patrones de exp. reg. ya no se consideran experimentales. Ahora, en
"aaz"=~/(?=z)(?<=(a|aa))/
,
$1
contendrá "aa" (la coincidencia de mayor longitud).
seguimiento estable de los valores booleanos. Ahora, los valores booleanos resultado de expresiones como
!!0
y
!!1
así como los de los resultados de funciones y operadores incorporados, mantienen su naturaleza como valor booleano. Hay una nueva función,
is_bool()
que puede servir para comprobar si un valor es booleano.
(experimental) iterar sobre múltiples valores al mismo tiempo:
Código: Perl
for
my
(
$key
,
$value
)
(
%hash
)
{
...
}
for
my
(
$left
,
$right
,
$gripping
)
(
@moties
)
{
...
}
Consultar
perlsyn
.
(experimental) nuevo módulo
builtin
.
Ofrece información y acceso a nuevas funciones o a las nuevas funciones incorporadas experimentales. Las de v5.36 son:
builtin::trim
Elimina los espacios en blanco que haya al principio y final de la cadena de texto
builtin::indexed
Devuelve una lista el doble de grande que la lista argumento, con cada elemento precedido por el índice de ese elemento. Esto es útil para recorrer arrays.
Código: Perl
use
builtin
'indexed'
;
foreach
my
(
$index
,
$val
)
(
indexed
@array
)
{
builtin:true, builtin::false, builtin::is_bool
Valores de verdad y función para comprobar si un valor es booleano.
builtin::weaken, builtin::unweaken, builtin::is_weak
Cambio en el tratamiento de referencias a una variable, para ser eliminada o no por el recolector de basura.
builtin::blessed, builtin::refaddr, builtin::reftype
Más información sobre referencias (incluso si no lo son).
builtin::ceil, builtin::floor
Redondeo al entero igual o inferior, o al igual o superior del valor dado.
(experimental) bloques
defer
. Definen secciones de código que se ejecutarán durante la salida del ámbito en que se encuentren esos bloques.
Código: Perl
use
feature
'defer'
;
{
say
"This happens first"
;
defer
{
say
"This happens last"
;
}
say
"And this happens inbetween"
;
}
(experimental)
try/catch
ahora tiene un bloque
finally
. Proporciona código que se ejecutará al final de la construcción.
(experimental) delimitadores no ASCII para entrecomillar. Ahora se podrá escribir
$text = qw« hola adios »;
(experimental)
@_
experimental en firmas de subrutinas. Ejemplo:
Código: Perl
use
v5
.
36
;
sub
f
(
$x
,
$y
=
123
)
{
say
"The first argument is $_[0]"
;
}
provocará una advertencia.
Cambios incompatibles
un
sort
vacío (sin argumentos), ahora es un fallo en tiempo de compilación.
@a = sort;
Obsolescencias
use VERSION
(con VERSION inferior a 5.11) después de un
use v5.11
(rebajar de versión), ahora es obsoleto. Ejemplo:
Código: Perl
use
v5
.
14
;
say
"say está permitido"
;
use
v5
.
8
;
# genera una advertencia
print
"Debemos usar print
\n
"
;
Plataformas obsoletas
AT&T UWIN
DOS/DJGPP
NetWare
Tweet
«
última modificación: Lunes 30 de Mayo de 2022, 14:59 por explorer
»
J
F
^
D
Perl programming
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación Web y Scripting
»
Perl
»
Perl v5.36, liberado