La "x" en su primer caso, es un operador de repetición, que toma la cadena como el argumento de la izquierda y el número de veces para repetir como el argumento de la derecha. Perl6 puede replicar listas usando el operador de repetición "xx".
Su segundo ejemplo usa la expresión regular m{^a}x
. Aunque puede usar muchos tipos diferentes de delimitadores, los neófitos pueden usar la notación familiar, que usa una barra diagonal: m/^a/x
La "x" en una expresión regular se llama modificador o bandera y es solo una de muchas banderas opcionales que pueden ser utilizadas. Se utiliza para ignorar espacios en blanco en el patrón de expresiones regulares, pero también permite el uso de comentarios normales en el interior. Debido a que los patrones de expresiones regulares pueden ser realmente largos y confusos, el uso del espacio en blanco y los comentarios son muy útiles.
Su ejemplo es muy corto (todo lo que dice es si la primera letra de la línea comienza con "a"), por lo que probablemente no necesitaría espacios en blanco ni comentarios, pero podría hacerlo si quisiera.
Ejemplo:
m/^a # first letter is an 'a'
# <-- you can put more regex on this line because whitespace is ignored
# <-- and more here if you want
/x
Gracias por la explicación clara. –
puede valer la pena editar y mencionar que puede acceder a esto a través de 'perldoc perlre'; ¡está incluso en la primera página! – leander