[Cascavel-pm] Problemas com o match

Flavio S. Glock fglock em gmail.com
Quinta Novembro 17 07:33:59 PST 2005


Lorn:

O motivo de usar a variável $buffer é para acumular todas as linhas em
um lugar só.

Se você usasse o $_ dentro do seu while, você pegaria somente uma
linha de cada vez, e aí não teria match.

O seu programa poderia funcionar sem o $buffer desta forma:

  undef $/;    # isso coloca o <> em modo "slurp"
  $_ = <DATA>;

    if (
        m{ \[ (\w{3}) \s* (\w{3}) \s* (\d{2}) \s*
          (\d{2}:\d{2}:\d{2})\s*
          (\d{4}) \]
          (\w*) \/ (\w*) /// Info(\(\d*\))
          \n
          (\w*) # isso e so pra pegar a 2a linha
        }x
  ){
    print "funfo a regexp\n";
    print "$buffer";
    print "$1\n";
    print "$2\n";
    print "$3\n";
    print "$4\n";
    print "$5\n";
    print "$6\n";
    print "$7\n";
    print "$8\n";
    print "$9\n";
    print "$10\n";
    print "$11\n";
  }

__DATA__
[Fri Sep 30 14:02:22 2005]Local/ESSBASE0///Info(1051001)
Received client request: Logout (from user Procbat

- Flavio S. Glock


Mais detalhes sobre a lista de discussão Cascavel-pm