Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - explorer

#81
Con el módulo Chess::Png de Perl lo tienes muy sencillo:

Código (perl lines=geshi-n) [Seleccionar]
use Chess::Pgn;
$p = new Chess::Pgn("2KTSDEF.PGN" ) || die "2KTSDEF.PGN not found";
while ( $p->ReadGame )
{
 print $p->white ,"<=>",$p->black, "\n";
}
$p->quit();

$p->white(Kouatly);
$p->black(Kasparov);


Por ejemplo, para sacar el resultado, sería tan sencillo como

Código (perl lines=geshi-n) [Seleccionar]
print $p->result;
#82
Esta es mi versión, en Perl.

Suponemos que la cabecera comienza con un número.
Código (perl) [Seleccionar]
#!/usr/bin/perl
use autodie;

my $encabezado;

open my $entrada, '<', 'kk.txt';
open my $salida,  '>', 'kk1.txt';

while (<$entrada>) {
   chomp;
   
   if (/^\d+/) { # si es la primera línea, es el encabezado
       $encabezado = $_;
   }
   elsif (/^$/) { # si es la última, solo una línea en blanco
       print $salida "\n";
   }
   else { # si no, es una línea normal
       print $salida "$encabezado, $_\n";
   }
}

close $entrada;
close $salida;
#83
Programación General / Re: Perl, Python o Ruby
19 Octubre 2014, 02:53 AM
Debes aprender los tres, en el siguiente orden: Perl, Ruby, Python.
#84
Scripting / Granada Perl Worshop 2014
16 Junio 2014, 04:06 AM
El próximo día 27 de junio, nos juntaremos los perleros españoles (y quien más quiera venir) en el ETSIIT de Granada, para celebrar el primer Granada Perl Workshop 2014.

La asistencia es gratuita, pero antes debéis apuntaros (o no tendréis la correspondiente camiseta  ;-) ).

Consejo: traed preparados vuestros currículum.
#85
Scripting / Re: problema con switch en perl
16 Junio 2014, 03:57 AM
Ya que estás aprendiendo Perl, te recomiendo que no uses el módulo Switch.

Siempre ha tenido errores. En estos momentos, marca que sólo tiene 4 errores denunciados, pero seguro que tiene más.

Fíjate lo que dice en su descripción:

Switch - A switch statement for Perl, do not use if you can use given/when

"No lo uses si puedes usar given/when".

given/when forma parte de los nuevos intérpretes de Perl, desde la versión v5.10. Para hacer uso de él (si tienes un Perl moderno), te vale con poner al principio del programa

use v5.10;

o también

use feature 'switch';

(Tienes más información sobre esto en perldoc perlsyn. Busca por la sección Switch statements)


La comparación de caracteres, efectivamente se hace con 'eq', pero... no te funciona porque en la línea 59, al leer desde el teclado, estás incluyendo el carácter de nueva línea (cuando el usuario pulsa la tecla de Entrar o Retorno).

Antes de hacer la comparación, debes asegurarte de que has eliminado esos caracteres, y sólo te quedas con la opción que el usuario ha elegido. Para ello, usa la función chomp(). Quedaría así:

Código (perl) [Seleccionar]
$opcion = <stdin>;
                                 chomp $opcion; # quitar caracteres de nueva línea


#86
Scripting / Re: [PERL]script corrompe archivo
23 Junio 2013, 14:34 PM
Los caracteres '0D' podrían ser los caracteres de Retorno de carro, en el sistema operativo Windows, o Nueva línea, en los Mac OS.

El programa hace una copia literal del archivo, así que los caracteres '0D' deberías verles también en el archivo original.

Si solo quieres eliminar los caracteres '0D', lo que puedes hacer es filtrarles:

Código (perl) [Seleccionar]
$file_contents =~ s/\0x0D//g;

Pero lo mejor sería saber el formato del archivo de origen, para hacer una conversión más correcta.

Saludos desde Perl en Español.
#87
¡Ah!, quizás el problema sea

if($fondo ne "Login failed"){


Es casi seguro que $fondo contengo algo más que "Login failed".

Quizás con una expresión regular...

Código (perl) [Seleccionar]
if ($fondo !~  /Login failed/) {

Otro detalle: mueve el $i++ a la primera parte del if(), no al else{}.
#88
Después del $i++; pon un

last;
#89
¡Buen aporte!

Esta es otra versión, un poco más corta...

Código (perl) [Seleccionar]
#!/usr/bin/perl
use Mojo::UserAgent;         # Nuestro agente
use utf8::all;               # Las salidas y entradas serán en utf-8

$ua = Mojo::UserAgent->new(name => 'Mozilla/5.0', request_timeout => 5);

print "\n\n-- == Buscador de sueños == --\n\n";
print '[+] Palabra : '; $_ = <>; chomp;

print $ua->get("http://www.mis-suenos.org/interpretaciones/buscar?text=$_")->res->dom("li")->first->text;

print "\n\n(C) Doddy Hackman 2012\n\n"; <>;
#90
El segundo código, si solo consiste en recorrer los valores numéricos entre 00000 y el 99999, vale ponerlo como
Código (perl) [Seleccionar]
#!/usr/bin/perl
open my $FILEHANDLE, ">>", "wpakey-jazztel.txt"  or  die 'cannot open file!';

for my $WAP_KEY ( "00000" .. "99999" ) {
    print $FILEHANDLE $WAP_KEY , "\n";
}

close $FILEHANDLE;

Además, dejamos fuera del bucle las sentencias open() y close(), por lo que se ejecutará mucho más rápido.

En el primer código hay un error: falta la 'P'. Y es demasiado largo para lo que se quiere hacer.

Esta es una versión un poco más corta:
Código (perl) [Seleccionar]
#!/usr/bin/perl
use Modern::Perl '2012';
use autodie;
use Algorithm::Combinatorics 'variations_with_repetition';

my @data = ( 'A' .. 'Z', '0' .. '9');

my $iterador = variations_with_repetition(\@data, 16);

open $fh, '>', 'fichero_wpakey.txt';

while (my $v = $iterador->next) {
    say $fh @{$v};
}

close $fh;

P.D.: El fichero resultante es realmente grande... 36^16 = 7,95866111 × 1024. Ocho cuatrillones de claves... Dudo mucho que se pueda generar un archivo de 135 yottabytes, en un ordenador casero...  ;D