LOGIN:

iMasters | Por uma internet mais criativa e dinâmica

Feeds

Quarta-feira, 11/06/2008 - 09:20 - Por Marcelo Colombo
Seções relacionadas:

O uso da variável especial $_

A linguagem de programação Perl possui um conjunto muito rico de ferramentas e estruturas, o que muitas vezes leva-se à possibilidade de escrever um mesmo comando de várias formas diferentes, umas mais simples, outras mais complexas, algumas pouco legíveis mas ao mesmo tempo extremamente concisas.

A maioria dos códigos que se encaixam nessa categoria faz uso de variáveis especiais, que trazem várias facilidades ao mesmo tempo para que pessoas novas na tecnologia gerem uma enorme quantidade de dúvidas. Uma das mais importantes, senão a mais importante dessas variáveis, é a $_ ("dólar-underscore").

Ela está presente em muitos contextos, mesmo que esses contextos possam utilizar variáveis explicitamente declaradas, e serve principalmente para assumir o valor temporário dentro de alguma estrutura (como uma repetição) ou o argumento de uma condição. Um exemplo que deve clarear um pouco essa idéia:


@vetor = (100, 200, 300);
foreach (@vetor) {
  print $_;
}

No exemplo acima, cada iteração da repetição (que percorrerá todos os elementos de vetor) colocará o seu corrente dentro de $_, que será impresso em seguida. Um exemplo ainda mais conciso seria:


@vetor = (100, 200, 300);
foreach (@vetor) {
  print;
}

Esse segundo trecho faz exatamente a mesma coisa que o primeiro (imprimir todos os elementos do vetor), só que também utilizou a variável especial _ como argumento, imprimindo o conteúdo nela armazenado na iteração. Nada impede que seja utilizado uma variável explícita na iteração, mas muito código que hoje existe faz uso dessas estruturas, então ter ao menos o conhecimento do seu funcionamento pode facilitar, e muito, numa eventual manutenção de código.

Um outro exemplo de uso dessa variável especial:


# usando variáveis explicitas
while (defined ($linha = <STDIN>)) {
  print $linha if $linha =~ /Perl/

}

# usando $_
while(<STDIN>) {
  print if /Perl/

}

No primeiro exemplo, a cada iteração nos dados de entrada (que poderiam representar as linhas lidas de um arquivo) os dados são armazenados na variável linha, que em seguida é testada com a existência do termo Perl (usando o operador de expressão regular) e caso retorne verdadeiro (quer dizer, se o termo existir) o conteúdo como um todo é impresso.

Repare agora no segundo exemplo. A variável linha some, dando lugar a $_. Repare que não é necessário nem mesmo colocar a variável como teste do if, ficando tudo sub-entendido. A legibilidade no primeiro bloco até pode ser maior, mas o segundo trecho ganha muito em alto nível, pois muitos detalhes de programação podem ser omitidos.

Esses trechos são apenas exemplos do poder dessa estrutura (e de várias outras que seguem a mesma linha) e que trazem um grande poder ao Perl.

Todos os artigos de Marcelo Colombo

0 comentários publicados

Poste um comentário


Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.

Sobre o autor

Marcelo Colombo é mestre em Educação pela Faculdade de Educação da UNICAMP na área de Novas Tecnologias Aplicadas à Educação. Fez graduação em Ciência da Computação também pela UNICAMP e trabalha há quase três anos com a tecnologia Perl, em sistemas de grande porte para empresas de Telecomunicações.


Indique para um amigo

captcha

TI SHOP Produtos iMasters

  • Lançamento: CD-ROM Treinamento Aplicado de SQL - Lançamento! Treinamento Aplicado de SQL - Aprenda a trabalhar com SQL com bancos de dados Oracle e SQL Server. São mais de 100 tópicos explicados por Mauro Pichilliani, um articulistas mais lidos do iMasters. Aproveite! Apenas R$ 69,90 no TI SHOP.
  • Lançamento: Livro iMasters "O Encontro de 2 Mundos"- Este livro conta com 56 crônicas de profissionais mais admirados e influentes do mercado brasileiro de Internet. Aproveite o preço especial para leitores do iMasters. Apenas R$ 40,00 e envio imediato!
  • DVD Curso Completo de Photoshop - Do conceito à finalização Lançamento! Curso Completo de Photoshop, em DVD, com mais de 230 aulas dividas em 4 módulos: conceito, básico, avançado e finalização. Apenas R$ 69,50 no TI SHOP - Frete com 50% de desconto
  • DVD Javascript Starter - Curso Completo Com mais de 9 horas de vídeo-aulas, é um curso completo sobre Javascript. Ideal para quem deseja aprender a linguagem. Apenas R$ 64,90 no TI SHOP - Frete com 50% de desconto!

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.