A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

Linguagem Perl - Operadores

Sex

21

Nov

2008


10:56

(6 votos, média 3.00 de 5) 


Operadores lógicos

Quando se quer formular condições complexas em diretivas relacionais ou loops, utiliza-se os operadores lógicos, um tipo especial de operador relacional. Exemplo:

#!/usr/bin/perl $Tentativas = 1; $Valor = 0; $min = 66; $max = 77; Entrada: print "Digite um número entre ", $min, " e ", $max; $Valor = ; chop($Valor); if($Valor < $min || $Valor > $max) { if($Valor =~ /[^0-9]/) { print "Isto não era um número.\n\n"; $Tentativas++; goto Entrada; } if($Tentativas < 3 && $Valor < $min) { print "Seu número foi muito baixo.\n\n"; } elsif($Tentativas < 3 && $Valor > $max) { print "Seu número foi muito alto.\n\n"; } elsif($Tentativas >= 3 && $Valor < $min) { print "Seu número foi novamente muito baixo!\n\n"; } elsif($Tentativas >= 3 && $Valor > $max) { print "Seu número foi novamente muito alto!\n\n"; } $min = abs($Valor - $min); $max = $min + abs($max - $min); $Tentativas++; goto Entrada; } if($Tentativas > 1) { print "Está vendo, assim a gente aprende!\n"; } else { print "Você acertou na primeira!\n"; }

Com o operador lógico && (AND lógico) é possível associar duas ou mais condições através de "E", isto é, ambas ou todas as condições precisam ser satisfeitas para que a condição global seja satisfeita. Com o operador lógico || (OR lógico) associa-se duas ou mais condições inclusive através de "OU", isto é, se uma das condições for atendida, a condição global é satisfeita.

Operadores de bits

Operadores bit a bit são para profissionais acostumados a lidar com bits. Para utilizar corretamente um operador deste tipo é preciso estar familiarizado com o sistema de notação binário e com a arquitetura interna de processadores. É por isso que os operadores bit a bit são mencionados apenas de passagem.

  • >> desloca bits para a direita
  • << desloca bits para a esquerda
  • & define a condição "E" (AND) numa máscara de bits
  • | define a condição "inclusive OU" (OR) numa máscara de bits
  • ^ define a condição "exclusive OU" (XOR) numa máscara de bits
  • ! define a condição "NÃO" (NOT) numa máscara de bits
  • ~ define a condição "complemento" numa máscara de bits

Operador de Concatenação de Strings

Com um ponto . é possível agregar uma string a outra, ou seja, concatenar duas strings. Exemplo:

#!/usr/bin/perl @Objetos = ("FHC ","ACM ","Lula ","Zé Dirceu "); @Predicados = ("ama ","reverencia ","enriquece ","respeita "); @ObjDir = ("o encantamento ","as alegrias ","o princípio ","o furor "); @ObjInd = ("do poder.","do parlamento.","da capital.","do clientelismo."); @Indice = (0..3); print "FRASES"."ALEATÓRIAS\n\n"; while($i < 10) { $j = 0; sleep(2); $Frase = ""; srand(time()); foreach $j (0..3) { $Indice[$j] = rand(3); } $Frase = $Frase.$Objetos[$Indice[0]]; $Frase = $Frase.$Predicados[$Indice[1]]; $Frase = $Frase.$ObjDir[$Indice[2]]; $Frase = $Frase.$ObjInd[$Indice[3]]; print $Frase, "\n"; $i++; }

Com o operador ponto (.) pode-se concatenar tanto strings quanto variáveis com strings. O exemplo acima cria frases aleatórias baseadas em matrizes de frases que são definidas no início do script.

Operador para Replicar Strings

Em Perl é possível "multiplicar" sequências de caracteres através do operador x. Exemplo:

#!/usr/bin/perl print "A"."h" x 10, "!\n"; # gera a saída de "Ahhhhhhhhhh!"

Coloca-se o operador x logo depois a string que se quer replicar. Após o operador, indica-se quantas vezes a sequência de caracteres deve ser repetida.

Informações adicionais