Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [perl] escape della ^

  1. #1

    escape della ^

    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

  2. #2

    errore nello escape

    @admins = (
    '_mRkZ_',
    'franke',
    '^giu^',
    'REHAEL',
    'IDDOSO'
    ); # Lista di tutti gli admin (Nicks)
    il ^giu^ non lo vede negli admin

  3. #3

    escape

    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"; }
    }

  4. #4
    il codice lo devi mettere così:

    codice:
    #!/usr/bin/perl
    ...
    Alla batteria dai retta ballA

  5. #5
    codice:
      use warnings;
    use IO::Socket;
    use Net::FTP;
    use LWP::Simple;
    use DBI;

  6. #6
    #!/usr/bin/perl

  7. #7
    codice:
    #!/usr/bin/perl
    
    use warnings;
    use IO::Socket;
    use Net::FTP;
    use LWP::Simple;
    use DBI;
    
    fork;

  8. #8
    codice:
    #!/usr/bin/perl
    
    use warnings;
    use IO::Socket;
    use Net::FTP;
    use LWP::Simple;

  9. #9
    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ì:

    codice:
    if (grep {m|^\Q$msgnick\E?$|} @admins) {
    nota i simbolI: \Q \E da aggiungere nel tuo codice.
    Questi simboli significano appunto che il testo incluso va interpretato come stringa letterale.

    Così dovrebbe funzionare.

    Di questo:
    codice:
    #!/usr/bin/perl
    non ci dovrebbe essere troppo bisogno.

    Infine ti do un consiglio.
    Aggiungi:

    codice:
    use strict;
    use warnings;
    al tuo codice.

    Non può che fare un gran bene!

  10. #10
    tnx 1000 funziona

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.