[Cascavel-pm] Informacoes no arquivo

Thomas Britis thomas em tcnet.com.br
Quarta Abril 19 09:14:51 PDT 2006


if ($_ !~ /^\s*V/)

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

-- 
Thomas Storino Britis
TCNet Informatica e Telecomunicacoes LTDA


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