Estoy intentando segmentar una cadena en fragmentos más pequeños para imprimirlos en columna. Es decir, tengo:
$cadena="XXXXXAAAAABBBBBCCCCC"
y quiero poder imprimir:
XXXXX
AAAAA
BBBBB
CCCCC
Es decir, meter un salto de línea cada x caracteres (en este ejemplo, 5 caracteres).
Preparé este pequeño código que resuelve el problema:
Using perl Syntax Highlighting
- while(length($cadena) > x){
- $sec=substr($cadena,0,x);
- print "$sec\n";
- $cadena=substr($cadena,x);
- }
- print "$cadena\n";
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
donde "x" es la longitud deseada.
El problema es que las longitudes de las cadenas en cuestión son de decenas de millones de caracteres, por lo que el código anterior se vuelve extremadamente lento.
¿Alguna idea para optimizar lo que quiero hacer y que se ejecute en un tiempo razonable? Le estoy dando vueltas pero no se me ocurre cómo hacerlo.
Si alguien puede echarme una mano estaría enormemente agradecido.
Saludos.