Aldeia Numaboa - Linguagem Perl - Expressões Condicionais
Você está aqui: Home Informática Tutoriais e Programação Perl e CGI Linguagem Perl - Expressões Condicionais
75.3% Brasil
17% Estados Unidos
Esta Semana: 404
Este Mês: 607
Total: 597441
Linguagem Perl - Expressões Condicionais
Atualização: Sábado, 22 Novembro 2008 22:48
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 "
\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 "
\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 "
Você possui ", $Resultado, "!
\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