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 - Expressões Condicionais

Sab

22

Nov

2008


22:22

(2 votos, média 5.00 de 5) 


Neste tutorial serão tratadas as expressões condicionais if, unless, else e elsif. Também será mostrada uma versão simplificada de if/else oferecida pela linguagem Perl.

Expressões condicionais da Perl

Veja no exemplo abaixo a aplicação de cada uma das expressões condicionais desta linguagem de programação:

#!/usr/bin/perl @Senhas = ("Curioso","Intrometido","Invasor"); # Lista de senhas # Script simples para exigir senha # # Na primeira condição, unless é testado se a entrada padrão contém a # # palavra 'segredo'. Se não for o caso, é gerado um HTML com um # # pequeno formulário para a entrada da senha. Ao se enviar o # # formulário, este script é novamente acionado. # # Como o nome do campo para a senha agora é 'segredo', o script # # entra no ramo else. Neste ramo, a senha digitada é procurada na # # lista de senhas. # read(STDIN, $Input, $ENV{'CONTENT_LENGTH'}); # Leitura da entrada padrão unless($Input =~ /segredo/) # Se não contiver 'segredo'... { print "Content-type: text/html\n\n"; # HTTP-Header para o HTML print "SENHA \n"; # Arquivo HTML print "

Senha

\n"; print "
\n"; print " \n"; print " \n"; print " \n"; print "
\n"; exit(0); } else # se tiver 'segredo'... { print "Content-type: text/html\n\n"; # HTTP-Header para o HTML print "SENHA \n"; # Arquivo HTML print "

Senha

\n"; ($nome, $valor) = split(/=/, $Input); for(@Senhas) # Rastrear lista de senhas { if($valor eq $_) # Se o valor fornecido for igual à senha { $Sucesso = "sim"; last; # Terminar o laço for } else # Se não encontrar a senha na lista { $Sucesso = "nao"; } } if($Sucesso eq "sim") { print "Acesso Permitido!\n"; # Aqui, por exemplo, podemos # enviar o usuário para uma URL secreta } else { print "Desculpe, sua senha está incorreta. Seu acesso foi negado !\n"; } print "\n"; exit(0); }

Com if inicia-se uma condição se-então (if = se). Logo após o if, dita-se a condição entre parênteses. Para formular a condição, são necessários operadores relacionais para números ou strings, geralmente também variáveis ou expressões regulares.

Uma outra possibilidade para formular uma condição se-então é através do uso de unless (unless = quando não). As regras são as mesmas do if. A diferença reside no fato de que com unless não é checado se a condição foi atendida, mas sim, se a condição não foi atendida para executar a porção do código dependente da referida condição.

Quando se quer criar um bloco de condições, utiliza-se uma ou várias elsif (elsif = ou se) logo após a primeira condição if/unless (atenção: o correto é elsif e não elseif!).

Com else (else = senão) define-se o ramo de código que deve ser executado caso a condição if, unless ou elsif não seja atendida.

:info: Observação: Tudo que estiver num ramo criado por condições if, unless, elsif ou else, precisa estar entre chaves, mesmo que se trate apenas de uma única diretiva.

Expressão Condicional simplificada

Existe uma sintaxe especial para expressões condicionais simples que pode ser utilizada como alternativa às expressões if/else. Veja o exemplo:

#!/usr/bin/perl $Resultado = $ENV{'HTTP_USER_AGENT'} =~ /98/ ? "Win 98/NT" : "não é Win 98/NT"; print "Content-type: text/html\n\n"; print "Usuário\n"; print "\n"; print "

Você possui ", $Resultado, "!

\n"; print "\n"; exit(0);

Uma avaliação se-então simples é iniciada por uma condição - no exemplo, $ENV{'HTTP_USER_AGENT'} =~ /98/ - seguida por um ponto de interrogação ?. Após o ponto de interrogação segue um valor que será o atual se a condição for satisfeita. Logo a seguir são colocados dois pontos : e o valor que será assumido caso a condição não seja atendida. Como se tratam de valores que só poderão ser processados se estiverem armazenados, geralmente atribui-se o resultado de uma avaliação se-então a uma variável qualquer - no exemplo, a escalar $Resultado.

Вадим Логофет Sberbankкисть для тонких линийотзывыхолдинг Рекламныйkontur yamalсмартфоны по низким ценамbroker mfx

Informações adicionais