Estaba notando un comportamiento curioso con el comando dividir de Perl, particularmente en los casos en que esperaría que la matriz resultante contenga cadenas vacías '', pero en realidad no es así.Perl dividido con delimitadores antes/después de texto vacío
Por ejemplo, si tengo un delimitador (es) al final (o el principio) de la cadena, la matriz resultante no tiene una cadena (s) vacía '' como el último (o primer) elemento.
Ejemplo:
@s = split(/x/, 'axb')
produce 2 conjunto de elementos de [ 'a', 'b']
@s = split(/x/, 'axbx')
produce misma matriz
@s = split(/x/, 'axbxxxx')
produce misma matriz
Pero tan pronto como coloco algo t Al final, todas esas cadenas vacías aparecen como elementos:
@s = split(/x/, 'axbxxxxc')
produce una matriz de 6 elemento [ 'a', 'b', '', '', '', 'c']
El comportamiento es similar si los delimitadores están al principio.
Espero que el texto vacío entre, antes o después de los delimitadores siempre produzca elementos en la división. ¿Alguien puede explicarme por qué la división se comporta así en Perl? Acabo de probar lo mismo en Python y funcionó como se esperaba.
Nota: Perl v5.8
Al citar de los documentos, incluya un enlace al documento correspondiente. Lo he agregado por ti esta vez. – cjm
Guau, me siento bastante tonto por no ir directamente a los documentos. Y sí, tienes razón, debo haber cometido algún error descuidado cuando probé los espacios iniciales, simplemente intenté de nuevo y los encontré preservados.¡Gracias por la nota sobre poner el límite de -1, eso me ayudó! – Roman
@cjm gracias; ¡Prometo que suelo hacerlo! – Cascabel