[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