Flavio<br><br><div>Imagine que vc quer imprimir todas as linhas entre uma string X e outra Y. Pode ser o começo e o fim de um StackTrace Java por exemplo. Vc pode ter uma "flag" $imprime quando encontra X e desliga quando encontra Y. </div>

<div><br></div><div>É uma maquina de estados pois vc tem 2 estados definidos: "dentro" e "fora" do que vc quer imprimir. Quando vc define os estados e como vc transita de um para o outro (que pode ser algo muito simples como uma flag booleana).</div>

<div><br></div><div>Outro exemplo, as vezes vc precisa fazer algo como formatar arquivos, ex.<br><br>de <br><br><a><br><b><br><c>valor</c><br></b><br></a><br><br>para <br><br><a><br>

   <b><br>        <c>valor</c><br>   </b><br></a><br><br>(espero que fique bem formatado)<div><br></div><div>A forma como vc faz isso é criando uma maquina de estados. Imagine que a cada <TAG> vc incrementa uma variável $nivel e, a partir dela, sabemos como adicionar uma quantidade de espaços na frente das tags. Este é um exemplo bem simples de maquina de estados tambem.</div>

</div><div><br></div><div><br>2011/3/13 "Flávio R. Lopes" <<a href="mailto:flavio.lopes@links.inf.br">flavio.lopes@links.inf.br</a>>:<br>> Máquina de Estados?....desculpem minha ignorância, mas nunca ouvi falar<br>

> sobre isto. Vou pesquisar sobre...<br>> Por enquanto, como é meio urgente isto, vou dar uma olhada no que sugeriu o<br>> Nelson.<br>><br>> abraço,<br>> Flávio<br>><br>> Em 13-03-2011 17:09, Thiago escreveu:<br>

>><br>>> Não sei o tamanho do arquivo, mas uma máquina de estados, como sugeriu o<br>>> Blabos soa bem...<br>>><br>>> On 13-03-2011 01:13, "Flávio R. Lopes" wrote:<br>>>><br>

>>> Olá pessoal, tudo bem?<br>>>> Seguinte, tenho rodando uma aplicação que gera um arquivo de log no<br>>>> seguinte formato (e que seguem um padrão):<br>>>><br>>>> 12-Mar 22:56 Id 100: Starting......<br>

>>> 12-Mar 22:56 Id 100: blablablablablablablablablabla<br>>>> 12-Mar 22:56 Id 100: blablablablabla<br>>>> .<br>>>> .<br>>>> .<br>>>> Id:              100<br>>>> .<br>

>>> .<br>>>> .<br>>>> Status:              OK<br>>>> .<br>>>> .<br>>>> .<br>>>> 12-Mar 22:57 Id 100: blablablablablablabla<br>>>> 12-Mar 22:57 Id 100: blablablablablablablablablablablablabla<br>

>>> 12-Mar 22:57 Id 100: End<br>>>><br>>>> 13-Mar 22:10 Id 101: Starting......<br>>>> 13-Mar 22:10 Id 101: blablablablablablablablablabla<br>>>> 13-Mar 22:10 Id 101: blablablablablablablablablablablablabla<br>

>>> .<br>>>> .<br>>>> .<br>>>> Id:              101<br>>>> .<br>>>> .<br>>>> .<br>>>> Status:              ERROR<br>>>> .<br>>>> .<br>

>>> .<br>>>> 13-Mar 22:11 Id 101: blablablablablablabla<br>>>> 13-Mar 22:11 Id 101: blablablablablablablablablablablablabla<br>>>> 13-Mar 22:11 Id 101: End<br>>>><br>>>><br>

>>> Minha idéia é gravar num arquivo, os blocos (trechos) que tiveram album<br>>>> problema (FAIL, WARNING, ERROR) e posteriormente enviar no meu e-mail.<br>>>> Tomando o exemplo acima, nas linhas referentes a tarefa (ID=101)<br>

>>> executada em 13/03, aconteceu algum problema (Status=ERROR). Então gostaria<br>>>> de copiar o bloco compreendido deste o início da linha onde é "startada" a<br>>>> tarefa (13-Mar 22:10 Id 101: Starting......) até a última linha desta tarefa<br>

>>> (13-Mar 22:11 Id 101: End)<br>>>><br>>>> Tentei buscar algum módulo no CPAN, mas acredito que não estou fazendo a<br>>>> busca de forma apropriada.<br>>>> Alguém pode me dar uma sugestão?<br>

>>><br>>>> Abraço,<br>>>> Flávio<br>>>><br>>>> =begin disclaimer<br>>>>  Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/">http://sao-paulo.pm.org/</a><br>>>> SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>

>>> L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>>>> =end disclaimer<br>>><br>>> =begin disclaimer<br>>>  Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/">http://sao-paulo.pm.org/</a><br>

>> SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>>> L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>

>> =end disclaimer<br>>><br>><br>> =begin disclaimer<br>>  Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/">http://sao-paulo.pm.org/</a><br>> SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>

> L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>> =end disclaimer<br>><br><br><br><br>-- <br>Tiago B. Peczenyj<br>Linux User #405772<br>

<br><a href="http://pacman.blog.br">http://pacman.blog.br</a><br><br></div>