Hola, estoy planteándome un problema de difícil solución
El tema que tengo es que envío un texto largo de varias líneas por IRC. Si envío mucho me echan por inundación, entonces necesito enviar cada cierto límite establecido en una variable, en este caso la variable $limit, que tendría un valor de "15". Entonces hago un split y separo todas las líneas "\n", para enviarlas cada 15 líneas, entonces ahí viene el problema: ¿ qué pasa con las restantes ? O sea, las que sobran en el cálculo de "15" quedan en el olvido, no sé cómo tratar este problema.
Otro detalle que tengo es que tengo que tener en cuenta que la variable $message puede tener cualquier cantidad de líneas con "\n", no es fijo.
El código:
Using perl Syntax Highlighting
#!usr/bin/perl
my $message = "hola1\nhola2\nhola3\nhola4\nhola5\nhola6\nhola7\nhola8\nhola9\nhola10\nhola11\nhola12\nhola13\nhola14\nhola15\nhola16\nhola17\nhola18\nhola19\nhola20\nhola21\nhola22\nhola23\nhola24\nhola25\nhola26\nhola27\nhola28\nhola29\nhola30\nhola31\nhola32\nhola33\nhola34\nhola35\nhola36\nhola37\nhola38\nhola39\nhola40\nhola41\nhola42\nhola43\nhola44\nhola45\nhola46\nhola47\nhola48\nhola49\nhola50\n";
my $limit = "15";
my @lines = split("\n",$message);
my $irc_message = "";
my $i = 0;
print "\n[+] Lines : ".@lines."\n";
if(@lines > 0) {
for my $line(@lines) {
chomp $line;
$i++;
$irc_message .= "PRIVMSG $admin : " . $line . "\r\n";
if ( $i % $limit == 0 ) {
print "\n[+] Bucle : " .$irc_message."\n";
#print $socket $irc_message; Envio al canal IRC los mensajes
$irc_message = "";
}
}
}
Coloreado en 0.003 segundos, usando
GeSHi 1.0.8.4
En el código el envío por
socket está comentado porque primero pruebo de forma local.
Salida:
Using text Syntax Highlighting
[+] Lines : 50
[+] Bucle : PRIVMSG : hola1
PRIVMSG : hola2
PRIVMSG : hola3
PRIVMSG : hola4
PRIVMSG : hola5
PRIVMSG : hola6
PRIVMSG : hola7
PRIVMSG : hola8
PRIVMSG : hola9
PRIVMSG : hola10
PRIVMSG : hola11
PRIVMSG : hola12
PRIVMSG : hola13
PRIVMSG : hola14
PRIVMSG : hola15
[+] Bucle : PRIVMSG : hola16
PRIVMSG : hola17
PRIVMSG : hola18
PRIVMSG : hola19
PRIVMSG : hola20
PRIVMSG : hola21
PRIVMSG : hola22
PRIVMSG : hola23
PRIVMSG : hola24
PRIVMSG : hola25
PRIVMSG : hola26
PRIVMSG : hola27
PRIVMSG : hola28
PRIVMSG : hola29
PRIVMSG : hola30
[+] Bucle : PRIVMSG : hola31
PRIVMSG : hola32
PRIVMSG : hola33
PRIVMSG : hola34
PRIVMSG : hola35
PRIVMSG : hola36
PRIVMSG : hola37
PRIVMSG : hola38
PRIVMSG : hola39
PRIVMSG : hola40
PRIVMSG : hola41
PRIVMSG : hola42
PRIVMSG : hola43
PRIVMSG : hola44
PRIVMSG : hola45
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Encima me sale mal, creo que son los saltos de línea que provocaron ese resultado. Esto es complicado, parece un algoritmo xD
¿ Cómo puedo resolver este problema ?