Operadores de Comparação em Perl

Agora que já estudamos os conceitos básicos de Perl, vamos aprender coisas mais complexas que deixarão nossos scripts cada mais interessantes e fazendo coisas úteis.

Vamos aprender como comparar números e strings, em Perl.

Operadores de Comparação Numérica em Perl

Existem 6 operadores de comparação, que podemos usar com números, em Perl, e são bem simples, pois se assemelham aos que usamos na matemática.

Os operadores são:

  1. Igualdade: ==
  2. Desigualdade: !=
  3. Maior: >
  4. Menor: <
  5. Maior igual: >=
  6. Menor igual: <=

Usamos eles assim:
  • valor1 operador valor2
E essa operação sempre retorna verdadeiro (TRUE ou 1) ou falso (FALSE ou 0).
Por exemplo, rode o seguinte script:
#!/usr/bin/perl

print "2==2: ",2==2,"\n";
Ele vai retornar: 1
O que o print faz é o resultado da operação 2 == 2
Essa operação é uma operação de comparação, você tá perguntando: 2 é igual a 2 ?
Ele responde com verdade (representado por 1).

Agora teste esta:

#!/usr/bin/perl

print "2==2: ",2==2,"\n";
print "1>2 : ",1>2,"\n";

O resultado é:

2==2: 1
1>2 : 

Quando perguntamos se 1 é maior que 2, ele responde com vazio, nada, nulo...que é o mesmo que falso em Perl.

E se perguntarmos se 1 é diferente de 2?
Fazemos isso com: 1 != 2, e é uma afirmação verdadeira, teste o script:
#!/usr/bin/perl

print "2==2: ",2==2,"\n";
print "1>2 : ",1>2,"\n";
print "1!=2: ",1!=2,"\n";
Deu tudo certo?

A operação: $a < $b
Retorna verdadeiro (1) se $a for menor que $b, e falso se $a for maior, ou até igual, a $b.

Já a expressão:
$a >= $b
Retorna verdadeiro (1), se $a for maior ou se for igual a $b, e retorna falso (vazio), se $a for menor que $b.

Por fim, a operação:
$a <= $b
Retorna 1 se $a for menor ou se $a for igual a b. Se $a for maior que $b ela retorna falso (vazio).

Comparações com strings em Perl

Para compararmos strings, usaremos umas letrinhas, que representam a mesma coisa dos operadores acima:
  1. Igualdade: eq 
  2. Desigualdade: ne
  3. Maior que: gt
  4. Menor que: lt
  5. Maior igual: ge
  6. Menor igual: le
Ou seja, os operadores de comparação de strings em Perl são:
eq (equal), ne (not equal), gt (greater than), lt (less than), ge (greater than or equal to) e le (less than or equal to).

A comparação é feita caractere por caractere, um por um, comparando para saber se as strings são iguais ou não.

Vamos ver alguns exemplos:
#!/usr/bin/perl

print "rush eq rush: ", 'rush' eq 'rush',"\n";
print "rush ne Rush: ",'rush' ne 'Rush',"\n";
print "abc gt ab   : ",'abc' gt 'ab',"\n";
print "bc lt bcd   : ",'bc' lt 'bcd',"\n";
Note que no padrão ASCII, as letras maiúsculas vem antes das minúsculas:
#!/usr/bin/perl

print "A lt a: ", 'A' lt 'a',"\n";
print "b gt B: ",'B' ne 'b',"\n";
Ou seja, 'A' é menor que 'a'
E 'b' é maior que 'B'

Teste os scripts, pessoal. Vejam os resultados.
Todas essas operações são como 'perguntas' para o Perl, que responde com 1 ou vazio, ou seja, verdadeiro ou falso.

E cuidado pra não confundir:
$a == 1 : é uma comparação, é uma pergunta '$a é igual a 1?', gera um retorno verdadeiro ou falso

E:
$a = 1 : é uma atribuição, $a vai receber o valor 1 e ponto final, acabou aí.

Nenhum comentário:

Veja também: