Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » En Comunidad » Proyectos » mIRC scripting a Perl Responder al tema
Nuevo tema


Página 1 de 1  [ 6 mensajes ] 
 
Nota 2011-06-05 18:13 @800

Perlero Nuevo
Registrado: 2011-06-05 18:09 @798
Mensajes: 3
mIRC scripting a Perl
Hola, soy programador de scripts para mIRC. Tengo un robot de trivias hecho a mi gusto y antojo. Mi idea es traducir el código a Perl. Necesitaría algo de ayuda. Claro que no espero que me lo hagan; sino, no entendería nunca el funcionamiento. Quiero aprender algo de Perl mientras hago mi proyecto. ¿Estoy en el lugar correcto?

Desde ya muchas gracias.


Nota 2011-06-05 18:23 @807
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10268
Re: mIRC scripting a Perl
Bienvenido a los foros de Perl en español, maguiTO.

Este es el lugar correcto si necesitas ayuda para tu proyecto.

Si quieres aprender Perl, comienza por Por dónde empezar.

También hay algunos hilos al respecto del IRC. Usa el sistema de búsqueda.

_________________
JF^D Perl programming


Nota 2011-06-05 18:39 @818

Perlero Nuevo
Registrado: 2011-06-05 18:09 @798
Mensajes: 3
Re: mIRC scripting a Perl
Gracias por la bienvenida explorer, estoy leyendo un poco y tengo una duda con un ejemplo...
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. my @array = ('Perro','Gato','Gallina','Pez');
  2.  
  3. my $animal = $array[3];

¿Por qué la variable es Pez y no Gallina?


Nota 2011-06-05 18:46 @823
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10268
Re: mIRC scripting a Perl
Porque los arrays se basan en índice 0. Entonces [3] se refiere al cuarto elemento.

Más información en perldoc perldata.

Estas dudas sobre Perl, es mejor hacerlas en el foro Básico.

_________________
JF^D Perl programming


Nota 2011-06-08 13:48 @617

Perlero Nuevo
Registrado: 2011-06-05 18:09 @798
Mensajes: 3
Suguiente paso [Bot irc]
Investigando un poco bastante y leyendo logré conectar el bot al IRC
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. use Net::IRC;
  2.  
  3. $server = 'irc.Servi.dor';
  4. $chan = '#Canal';
  5. $nick = 'ApodoBOT';
  6. $user = 'id';
  7. $realname = 'Proyecto: Bot en perl';
  8.  
  9. $irc = new Net::IRC;
  10.  
  11. $conn = $irc->newconn(Nick => $nick, Server => $server, Port => 6667, Username => $user, Ircname => $realname);
  12.  
  13. $conn->add_handler('376', \&on_connect);
  14.  
  15. sub on_connect {
  16.   my $self = shift;
  17.   $self->join($chan);
  18. }
  19.  
  20. $irc->start;

Ahora necesitaría saber si hay algún tipo de temporizador que deba estudiar. En scripting está /timer <repetición> [tiempo] <comando>

Les doy un ejemplo de lo que quiero lograr:

Syntax: [ Download ] [ Hide ]
Using javascript Syntax Highlighting
  1. alias ejemplo {
  2.   timer  1 10 alias_1
  3.   timer  1 20 alias_2
  4.   timer  1 30 alias_3
  5. }
  6.  
  7. alias alias_1 { msg $chan Este es el primer timer que se activo a los 10 segundos de ejecutar "ejemplo" }
  8. alias alias_2 { msg $chan Segundo timer a los 20 segundos }
  9. alias alias_3 { msg $chan Tercer y ultima acción que seria a los 30 }

No soy muy bueno expresándome. Ténganme paciencia XD


Nota 2011-06-08 14:06 @629
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10268
Re: mIRC scripting a Perl
En Perl no es directo la creación de temporizadores.

Hay infraestructuras, como la de POE, por ejemplo, que permite un uso asíncrono del código, y con algunas posibilidades de crear esos temporizadores.

Otra forma, un poco más burda, sería que el programa generara un hijo por medio de un fork(), y que esté hijo lo único que hiciera fuera esperar (sleep) un cierto tiempo, sacar el mensaje al canal, y luego morir.

Estoy casi convencido que los módulos especializados en IRC, en el CPAN, tienen mejores formas de hacer esto.

Por ejemplo, el módulo Bot::BasicBot tiene la función schedule_tick(), que llamará a la función tick() pasado el tiempo indicado. Lo malo es que solo se puede indicar un periodo de tiempo.

También tiene la función forkit(), para hacer lo comentado antes.

_________________
JF^D Perl programming


Responder al tema  [ 6 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO