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) 


Neste tutorial são apresentados os operadores da linguagem Perl e a forma como são usados. Alguns exemplos deixam mais claras as aplicações. Vamos lá, arregacem as mangas!

Operador de Atribuição

Sem dúvida nenhuma, é o operador mais usado. Para atribuir um valor a uma variável escalar, o operador de atribuição é o sinal de igual =. Exemplos:

$Nome = "Pedro Bó"; $Codigo = 4711;

Operadores Relacionais

Os operadores relacionais também são conhecidos como operadores de comparação. São utilizados quando se quer comparar dois valores, por exemplo, o valor atual de uma escalar comparado a um valor fixo. Exemplos:

if($RazaoDeViver == 42) { print "Você entendeu a vida !\n"; } if($RazaoDeViver != 42) { print "Você não entendeu nada da vida !\n"; } if($RazaoDeViver > 42) { print "Você está louco ?\n"; } if($RazaoDeViver < 42) { print "Você é um nanico frente a vida !\n"; } if($Idade >= 18) { print "Você está liberado para ver estas bobagens !\n"; } if($Idade <= 17) { print "Você nem tem idade para estas bobagens !\n"; } if($Senha eq "HexaSexo") { print "Você tem acesso ao sexo na sala hexadecimal!\n"; } if($Senha ne "HexaSexo") { print "É melhor ter sexo unidimensional na sua casa!\n"; } if($Nome gt "Y") { print "Você é mesmo sempre o último!\n"; } if($Nome lt "B") { print "Você consegue mesmo ser sempre o primeiro!\n"; } if($Nome ge "ZZ Top") { print "Sua banda preferida é a ZZ Top ou algo muito perverso!\n"; } if($Nome le "Abba") { print "Sua banda preferida é Abba ou algo muito light!\n"; } if($Idade =~ /[^0-9]/) { print "Isto nem número é!\n"; }

Na Perl existem diferenças entre operadores relacionais para números e para sequências de caracteres. No tutorial expressões regulares pode ser encontrado um operador relacional especial.

Para testar se dois valores numéricos são iguais, são utilizados dois sinais de igual ==. Para conferir se dois valores numéricos são diferentes, usa-se um ponto de exclamação (que significa não) seguido de um sinal de igual !=. Para constatar se um valor numérico é maior ou igual a outro, é usado um sinal de maior seguido de um sinal de igual >=. Para verificar se um valor numérico é maior que outro, aplica-se o sinal de maior >. Para verificar se um valor numérico é menor ou igual a outro, é usado um sinal de menor seguido de um sinal de igual <=. E, finalmente, para verificar se um valor numérico é menor que outro, o sinal de menor < é utilizado.

Para testar se duas strings são iguais, coloca-se eq (eq = equal = igual) entre as strings testadas. Da mesma forma, para verificar se duas strings apresentam diferenças, utiliza-se ne (ne = not equal = não iguais) entre elas. Para constatar se uma das strings é maior que outra, ou seja, está adiante na ordem alfabética, gt (gt = greater than = maior que) é utilizado. Da mesma forma, para verificar se é menor, ou seja, está mais atrás na ordem alfabética, usa-se lt (lt = less than = menor que). Para ver se uma string é maior ou igual a outra, usa-se ge (ge = greater or equal = maior ou igual) entre elas. Finalmente, para verificar se é menor ou igual, usa-se le (le = less or equal = menor ou igual).

Para comparar o valor de uma escalar, numérica ou de caracteres, com o valor de uma expressão regular, utiliza-se o operador de comparação =~.

Operadores Matemáticos

Para efetuar cálculos com valores numéricos são necessários os operadores matemáticos. Exemplos:

$FazCem = 83 + 17; $FazCem = 113 - 13; $FazCem = 4 * 25; $FazCem = 450 / 4.5; $FazCem = 450 / 2 - 125; $FazCem = 10 * (2 + 8); $x = $FazCem % 4; if($x == 0) { print $FazCem, " é um ano bissexto\n"; } /* Notações Especiais: */ $Numero = 100; $Numero++; # Incrementa $Numero em 1 $Numero--; # Diminui $Numero em 1 $Numero += 10; # Aumenta $Numero em 10 $Numero -= 10; # Diminui $Numero em 10

As operações matemáticas são indicadas com os sinais habituais. Com + obtém-se uma soma, com - uma subtração, com * uma multiplicação e com / uma divisão.

O operador % oferece uma operação especial, o assim chamado módulo de divisão. O módulo de divisão guarda o resto da divisão de um valor por outro. Por exemplo, ao fazer um módulo de divisão 13 % 5 o resultado obtido é 3. Isto porque 13 dividido por 5 dá 2 e o resto é 3.

Pode-se criar uma cadeia de operações matemáticas onde, naturalmente, vale a clássica regra de precedência "ponto antes do traço". A regra de precedência indica a sequência em que as operações serão realizadas: módulo, multiplicação e divisão antes da soma e da subtração. Assim, $Resultado = 10 * 2 + 8; será 28 porque a multiplicação ocorre antes da soma. Se quisermos que a soma seja efetuada antes de multiplicação, precisamos indicar a soma entre parênteses para forçar a precedência. Assim, $Resultado = 10 * (2 + 8); será 100.

As notações especiais que aparecem no exemplo acima podem ser utilizadas para abreviar operações de soma ou subtração. Assim, $Numero++; é uma abreviação de $Numero = $Numero + 1; e $Numero--; é o mesmo que $Numero = $Numero - 1; Do mesmo modo, $Numero += 10; é uma abreviação de $Numero = $Numero + 10; e $Numero -= 10 é o mesmo que $Numero = $Numero - 10;.

O operador ++ também é utilizado como operador de incremento e -- como operador de decremento.

Informações adicionais