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:
- Igualdade: ==
- Desigualdade: !=
- Maior: >
- Menor: <
- Maior igual: >=
- 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";
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:
- Igualdade: eq
- Desigualdade: ne
- Maior que: gt
- Menor que: lt
- Maior igual: ge
- 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:
Postar um comentário