salve avrei un problema devo mettere dei nickname e uno di questi ha la ^ iniziale e finale non riesco a farglela accettare il nick sta in mezzo a 2 '^nickname^',che comando devo usare???
tnx
salve avrei un problema devo mettere dei nickname e uno di questi ha la ^ iniziale e finale non riesco a farglela accettare il nick sta in mezzo a 2 '^nickname^',che comando devo usare???
tnx
@admins = (
'_mRkZ_',
'franke',
'^giu^',
'REHAEL',
'IDDOSO'
); # Lista di tutti gli admin (Nicks)
il ^giu^ non lo vede negli admin
if($text =~ /^\@Termina/i) {
if (grep {m|^$msgnick?$|} @admins) {
print $fd "QUIT \" WebList v1.0b\"\r\n";
die "Terminato da $msgnick\r\n";
} else { print $fd "PRIVMSG $chan 14Il nick9 $msgnick 14non è autorizzato ad impartire comandi!\r\n"; }
}
il codice lo devi mettere così:
codice:#!/usr/bin/perl ...
Alla batteria dai retta ballA
codice:use warnings; use IO::Socket; use Net::FTP; use LWP::Simple; use DBI;
#!/usr/bin/perl
codice:#!/usr/bin/perl use warnings; use IO::Socket; use Net::FTP; use LWP::Simple; use DBI; fork;
codice:#!/usr/bin/perl use warnings; use IO::Socket; use Net::FTP; use LWP::Simple;
ciao,
il problema è che:
^giu^
viene interpretato con i caratteri speciali delle espressioni regolari
(^ significa sia "non è", sia "la riga comincia con").
Basta spiegare al Perl, che i simboli all'interno dei nickname non sono caratteri speciali,
ma semplici letterali.
In pratica basta che sostituisci questa riga:
codice:if (grep {m|^$msgnick?$|} @admins) {
così:
nota i simbolI: \Q \E da aggiungere nel tuo codice.codice:if (grep {m|^\Q$msgnick\E?$|} @admins) {
Questi simboli significano appunto che il testo incluso va interpretato come stringa letterale.
Così dovrebbe funzionare.
Di questo:
non ci dovrebbe essere troppo bisogno.codice:#!/usr/bin/perl
Infine ti do un consiglio.
Aggiungi:
al tuo codice.codice:use strict; use warnings;
Non può che fare un gran bene!
tnx 1000 funziona