Olá Pessoal.. brigada pela ajuda.. um amigo me sugeriu fazer da seguinte forma:<br><pre><tt><br>foreach(@table)<br><br>{<br><br>&nbsp;&nbsp; if ($_ =~ /^\s*V/) {<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print "VAR: $var TIPO: $tipo TESTE: $test \n";<br><br>&nbsp;&nbsp; }<br><br>}<br><br><br>Agora nao quero pegar a variavel V-TESTE tentei fazer:<br></tt>if (($_ =~ /^\s*V/) or ($_ !='V-TESTE' ) <br><br>mas nao funciono<br><br>:P<br><br><tt><tt><br></tt></tt></pre><br><br><b><i>"Alceu R. de Freitas Jr." &lt;glasswalk3r@yahoo.com.br&gt;</i></b> escreveu:<blockquote class="replbq" style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"> Oi Patty,<br><br>Comentei seu email abaixo.<br><br>--- Patty Silva <ptfzs@yahoo.com.br> escreveu:<br><br>&gt; Pessoal..<br>&gt;  o arquivo nao eh por TAB<br><br>Então os registros estão separados por espaços, creio<br>eu? Seria melhor se você nos contasse.<br> <br>&gt;  Eu quero pegar somente as VARIAVEIS que comecem
 com<br>&gt; V , no caso<br>&gt;  V-NOME, V-END.. pq as outras nao possuem valor..var<br>&gt; TEL , var FAX ...<br><br>Existem várias maneiras de resolver isso. Pode ser com<br>REGEX, mas se você sabe de antemão quais são as<br>variáveis desejadas, pode ser mais rápido comparar<br>elas usando o operador "eq" e colocar isso num loop.<br><br>&gt;  Como sugerido pelo amigo, fiz:<br>&gt;  <br>&gt;  open(FH, '<teste.txt');><br>&gt;  @table = <FH>;<br><br>Não faça isso, a menos que tenha certeza que o arquivo<br>é pequeno e você tenha memória sobrando. Se for esse o<br>caso, essa é a forma mais rápida.<br><br>Do contrário, use<br><br>while (<FH>) {<br><br># faz algum processamento<br><br>}<br><br>&gt;  shift @table; #descarta primeira linha<br><br>Tem uma variável do Perl que possui o número da linha<br>atual. Alguém saberia dizer qual?<br><br># descarta a primeira linha<br>next if $numero_linha = 1;<br><br>&gt;  foreach(@table)<br>&gt;  {<br>&gt;  # Esse UNDEF é pq possui espaco
 em branco antes da<br>&gt; variavel..<br>&gt;  (undef,$var,$tipo,$time,$id,$test) = split /\s+/,<br>&gt; $_;<br>&gt;  print "VAR: $var TIPO: $tipo TESTE: $test \n";<br>&gt;  <br>&gt;  <br>&gt;  }<br>&gt;  <br>&gt;  So que esta pegando tudo...<br><br>Se está pegando tudo, seu separador de campos não está<br>correto. Verifique se você possui espaços como<br>separadores.<br><br>&gt; oBS: pensei em utilizar uma expressao regulara para<br>&gt; verificar se a $VAR cmeca por V?? se alguem puder me<br>&gt; ajudar!!<br><br>Pode ser. Mas se você precisa de performance, eu<br>tentaria incluir os valores exatos das variáveis dos<br>scripts assim:<br><br>if ( ( $_ eq 'VAR1' ) or ( $_ eq 'VAR2' ) ) {<br><br># faz alguma coisa<br><br>}<br><br>Com regex ficaria algo assim:<br><br>if (/^V\w+) {<br><br># faz alguma coisa<br><br>}<br><br>Para testar a diferença de performance, tente usar o<br>módulo Benchmark.<br><br>[]'s<br><br><br><br>Alceu Rodrigues de Freitas
 Junior<br>--------------------------------------<br>glasswalk3r@yahoo.com.br<br>http://www.imortais.cjb.net<br>-----------------------------------------------------------------------<br>A well-used door needs no oil on its hinges.<br>A swift-flowing stream does not grow stagnant.<br>Neither sound nor thoughts can travel through a vacuum.<br>Software rots if not used.<br>These are great mysteries -- The Tao Of Programming, 5.1<br><br><br>  <br>_______________________________________________________ <br>Abra sua conta no Yahoo! Mail: 1GB de espaço, alertas de e-mail no celular e anti-spam realmente eficaz. <br>http://br.info.mail.yahoo.com/<br>_______________________________________________<br>Cascavel-pm mailing list<br>Cascavel-pm@pm.org<br>http://mail.pm.org/mailman/listinfo/cascavel-pm<br></FH></FH></teste.txt');></ptfzs@yahoo.com.br></blockquote><br><p>
                <hr size=1> 
<a href="http://us.rd.yahoo.com/mail/br/tagline/mail/*http://br.info.mail.yahoo.com/">Abra sua conta no Yahoo! Mail</a> - 1GB de espaço, alertas de e-mail no celular e anti-spam realmente eficaz.