Índice Anterior Próxima

(?{código})

Está gostando da leitura? Está aprendendo? Compre o livro novo que traz mais conteúdo, texto atualizado e ilustrações!

E agora, a prova de que isso já foi longe demais, e o marco da perda definitiva de compatibilidade de ERs entre aplicativos: a possibilidade de colocar códigos Perl para serem executados no meio da ER. Por enquanto é só o Perl que ousou fazer isso.

Dá até coceira de estar escrevendo sobre isso, mas você pode colocar trechos de um mesmo código, como um contador incremental, em várias partes de uma mesma ER.

Vou colocar aqui um exemplo tirado do manual do Perl, estruturado e comentado, veja com seus próprios olhos:

$_ = 'a' x 8;
m<
  (?{ $cnt = 0 })             #inicializa
  (
   a
    (?{
       local $cnt = $cnt + 1; #incrementa
    })
  )*
  aaaa
  (?{ $res = $cnt })  # se ok, copia para
                      # uma var não-local
 >x;

Índice Anterior Próxima