Aquí no pasa nada mágico, solo ofuscación. Tomemos una vista de alto nivel. La primera cosa a notar es que más tarde, todos los personajes de cuerdas se interpreta como si fuera el carácter anterior:
[1] map{chr(ord()-1)} ...
Por lo tanto, una cadena como "6QD" dará lugar a "5RC" (los caracteres antes ' 6 ',' q 'y' D ', respectivamente). El principal punto de interés es la matriz de cadenas cerca del comienzo:
[2] ">>>E!)",">>>E)",">>>E",">>>",">>",">",""
Esto define una secuencia de "máscaras" que vamos a sustituir más adelante, en esta cadena:
[3] "9$_*\x{0e}"
van a se inserta en el punto $_
. La cadena \x{0e}
representa un carácter de control hexadecimal; Observe que \x{0d}
, el carácter justo antes, es un retorno de carro. Eso es lo que será sustituido en [3] cuando lo hagamos [1].
Antes de ensamblar la cadena [3], anteponemos un número de !
igual a i a cada elemento en [2]. Cada elemento sucesivo obtiene uno más !
que el elemento anterior. Tenga en cuenta que el carácter cuyo valor es justo antes de !
es un espacio
.
El resto de las iteraciones de script más de cada uno de los elementos de la matriz ensamblados, que ahora se parecen más a esto:
[4] "!!!!!9>>>E!)\x{0e}", ---> " 8===D ("
"!!!!!!9>>>E)\x{0e}", ---> " 8===D("
"!!!!!!!9>>>E\x{0e}", ---> " 8===D"
"!!!!!!!!9>>>\x{0e}", ---> " 8==="
"!!!!!!!!!9>>\x{0e}", ---> " 8=="
"!!!!!!!!!!9>\x{0e}", ---> " 8="
"!!!!!!!!!!!9\x{0e}", ---> " 8"
Entonces la operación reverse
anexa los mismos elementos a la inversa, la creación de un bucle.
En este punto, debería poder ver el patrón emergente que produce la animación. Ahora solo se trata de avanzar en cada paso de la animación y viceversa, lo cual se logra con el resto del guión. El retraso de paso de tiempo de cada paso se rige por la instrucción de selección:
[5] select undef, undef, undef, 0.25
que nos dice que espere 250 milisegundos entre cada iteración. Puede cambiar esto si quiere ver que se acelere o reduzca la velocidad.
Cuál es el problema, excepto la fealdad extrema? – anthares
Ruido de línea ejecutable :-D – Krab
Las mágicas hadas de Perl hacen que todo suceda. – Ether