Using perl Syntax Highlighting
push @nuevo_array, $caracter if not $visto_antes{$caracter}++;Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
"Guarda en el @nuevo_array el $caracter si no se ha %visto_antes ese $caracter".
En esa línea, primero se ejecuta la parte del 'if' para ver si debemos guardar el carácter o no. En el 'if', primero miramos el valor de $visto_antes{ $caracter }. Esto es un elemento del hash %visto_antes.
Si un $caracter, es la primera vez que le vemos, entonces $visto_antes{ $caracter } será 0 (más bien, será nulo, porque no existirá). Entonces, con el efecto contrario del 'not', se invierte la condición, y se activa positivamente el 'if', guardando el $caracter en @nuevo_array. Luego, incrementa (++) el valor $visto_antes{$caracter} (que valdrá, lógicamente, 1).
Si un $caracter, NO es la primera vez que le vemos, entonces $visto_antes{ $caracter } será 1 (puesto por el efecto de incremento comentado antes). Por el 'not', se invierte el resultado, y el 'if' falla, por lo que el $caracter no se guarda.