Mostrando postagens com marcador Perl. Mostrar todas as postagens
Mostrando postagens com marcador Perl. Mostrar todas as postagens

GIVEN e WHEN teste condicional em Perl

Neste tutorial de nosso curso de Perl, vamos aprender como usar o teste condicional given.

O teste condicional GIVEN

Se você já estudou outras linguagens de programação, como C, C++ ou Java, por exemplo, deve estar ciente do comando switch, que funciona como um montão de IF e ELSE.

Veja nosso tutorial sobre IF, ELSIF e ELSE em Perl.
Estude novamente o último exemplo, sobre testes condicionais aninhados, onde colocamos diversos IF e ELSE dentro de outros IF e ELSEs.

Basicamente, temos um valor ou expressão, em que queremos pegar seu resultado e comparar com uma série de possibilidades e rodar um determinado código específico para aquele resultado.

A sintaxe do given when é a seguinte:
given (expression){
        when(value1) { #código caso
                       #expression = value1 
                     }
        when(value2) { #código caso
                       #expression = value2 
                     }
        when(value3) { #código caso
                       #expression = value3 
                     }
        default { #código caso
                  #expression seja
                  #qualquer outro valor 
                }
} 

Como funciona GIVEN e WHEN em Perl

Vamos dar para o given alguma expressão, como um teste condicional que resulte em algum valor, booleano ou não, a informação é expression.

Note que cada when tem um valor nele, dentro dos parêntesis de cada um, o Perl sai testando expression com todos esses valores dentro dos when.

Quando ele encontra um value que bate com expression, ou seja, são iguais, ele executa o código daquele when.

Se não encontrar nenhum when com valor que dá 'match' com o valor do given, ele executa o código do default.

Exemplos de uso de GIVEN e WHEN em Perl

O seguinte código pede um número ao usuário, de 1 até 7 e imprime na tela o nome, por extenso, do dia da semana. Caso digite errado, cai no default, que avisa o problema.
#!/usr/bin/perl

use experimental qw( switch );

print "Dia da semana: ";
chomp($day=<STDIN>);

given ($day){
        when(1) {print "Domingo\n";}
        when(2) {print "Segunda-feira\n";}
        when(3) {print "Terça-feira\n";}
        when(4) {print "Quarta-feira\n";}
        when(5) {print "Quinta-feira\n";}
        when(6) {print "Sexta-feira\n";}
        when(7) {print "Sábado\n";}
        default {print "Dia inválido\n";}
}       

Note algumas coisas.
Primeiro, isso é possível fazer com IF e ELSE, porém com eles fica mais longo e desorganizado.
Segundo, o comando GIVEN ainda é experimental, no Perl, portanto, por hora, evite usar sempre que puder.

Vamos criar, agora, um mini tradutor, onde o usuário vai digitar a cor em portuguesa e vamos exibir a tradução, em inglês:
#!/usr/bin/perl

use experimental qw( switch );

print "Cor: ";
chomp($color=<STDIN>);

given ($color){
        when("vermelho") {print "Red\n";}
        when("azul") {print "Blue\n";}
        when("amarelo") {print "Yellow\n";}
        when("verde") {print "Green\n";}   
        default {print "Cor não faz parte do banco de dados\n";}
}       

Foda esse Perl, não é?

Referências

https://www.perlmonks.org/?node_id=1078449
https://www.perltutorial.org/perl-given/

Ler Tutorial

O teste condicional UNLESS em Perl

Nesse tutorial de nosso Curso de Perl, vamos aprender o que é, para que serve e como usar o teste condicional unless em Perl.

unless em Perl

Vimos no tutorial sobre o teste condicional IF que ele executa determinado bloco de código, caso uma expressão ou condição seja verdadeira.

Existe uma estrutura de seleção contrária ao IF, que é o UNLESS, ou seja, ela vai executar determinados comandos se o teste condicional for FALSO.

Ou seja, usamos ele assim:
unless (teste_condicional){
   # código caso o teste
   # seja falso
}
Unless, em inglês, significa: a menos que.

Ou seja, veja a lógica dessa estrutura: a menos que [teste] seja verdadeiro, fazer...
Agora vamos ver alguns exemplos.

Como usar unless em Perl

Crie um script em Perl que solicite a idade ao usuário, para entrar numa festa, e que só permita a entrada se ele tiver 18 anos ou mais.

O código do script é:
#!/usr/bin/perl

print "Idade: ";
chomp($age=<STDIN>);

unless($age>=18){
        print "Você precisa ter 18 anos, pelo menos\n";
}
Agora, a lógica deve funcionar bem em sua cabeça, para você entender o conceito e ser um bom programador. O que esse código significa é:
print essa mensagem, a menos que a condição seja verdadeira

Ou seja, se a condição for falsa, é pra rodar o código do unless.
É pra rodar, a menos que seja verdade, ou seja, se for verdade não roda, só roda se for falso, ao contrário do IF que só roda se for verdade.

Um pouco confuso no começo, mas com calma você pega.

unless e else em Perl

E, assim como no nosso amado IF e ELSE, também existe o UNLESS E ELSE.
Hora, se o teste for verdadeiro cai no IF e se for falso cai no ELSE, no caso do unless é o contrário: se o teste for falso, cai no UNLESS e se for verdadeiro, cai no ELSE.

Vamos deixar o script anterior mais completo:
#!/usr/bin/perl

print "Idade: ";
chomp($age=<STDIN>);

unless($age>=18){
        print "Você precisa ter 18 anos, pelo menos\n";
}else{
        print "Pode entrar!\n";
}
Prontinho, agora se tiver 18 anos ou mais, avisa que pode entrar.
Se tiver menos que 18, avisa que não pode entrar.

Exemplo de uso de unless

Vamos fazer agora o exemplo do script que pede a senha para o usuário, se ela for diferente de 'rush2112', avisa que o hacker vai ser preso. Se for verdade, avise que está entrando no sistema.

Veja como fica o código:
#!/usr/bin/perl

print "Digite a senha: ";
chomp($password=<STDIN>);

unless($password eq 'rush2112'){
        print "Senha errada! Pegamos você, hacker...\n";
}else{
        print "Senha correta, entrando no sistema...\n";
}
Note que usamos o operador de comparação de igualdade, eq, de strings.
Se for falso, ou seja, se a senha for diferente de 'rush2112', dizemos que pegamos o hacker.

Poderíamos fazer ao contrário, usando o operador ne (not equal), de desigualdade, veja:
#!/usr/bin/perl

print "Digite a senha: ";
chomp($password=<STDIN>);

unless($password ne 'rush2112'){
        print "Senha correta, entrando no sistema...\n";
}else{
        print "Senha errada! Pegamos você, hacker...\n";
}
Ou seja, se não for desigual, é porque é igual a senha está correta.

É o contrário do anterior, e o UNLESS é sempre o contrário do IF.
Veja que não existe certo nem errado, melhor nem pior, código é como impressão digital, cada um tem o seu estilo próprio, veja o que mais faz sentido pra você.

Eu, particularmente, ainda prefiro usar o IF.
Você pode, inclusive, usar UNLESS com ELSIF, veja:
https://beginnersbook.com/2017/02/unless-elsif-else-statement-in-perl/
Ler Tutorial

Como ser um bom programador Perl

Agora que aprendemos um pouco sobre o que é a linguagem de programação Perl, vamos te falar mais um pouco sobre a arte, a profissão, ou o hobby de programar nesta maravilhosa linguagem.

Baixar apostila de Perl em PDF
Baixar e estudar pela apostila em PDF

O Programador Perl

Tem um slogan muito famoso, que diz que o bom programador Perl tem três características:

  1. É preguiçoso
  2. Impaciente
  3. Exibido (no sentido de ser arrogante)


Parecem três coisas ruins, não é? Mas calma, vamos explicar essa história melhor.

Uma pessoa preguiçosa quer trabalhar pouco, se esforçar o mínimo possível.
Então, um bom programador Perl vai procurar fazer algo, resolver o problema, da maneira mais fácil possível, se esforçando e enrolando o mínimo possível, pra se livrar logo daquele problema.

Tem até uma frase famosa do Bill Gates que fala sobre isso:

Como ser um bom programador

"Eu escolho pessoas preguiçosas para fazer um trabalho difícil. Porque uma pessoa preguiçosa vai descobrir um jeito fácil de fazer isso."

Pessoas impacientes não querem fazer uma coisa que o computador poderia estar fazendo. Afinal, as máquinas são pra isso: pra fazer o que a gente quiser, de uma maneira bem rápida. Então, programadores Perl vão evitar fazer tudo o que for possível, e vão delegar ao máximos as coisas para seus scripts.

Você também tem que ser exibido. Tem que querer compartilhar seu código, mostrar pra comunidade, pros colegas.

Obviamente, você não vai mostrar um script feio, confuso...você vai querer mostrar algo bonito, simples, direto...fazer em 10 linhas o que outra pessoa fez usando 50.

Os outros também tem que entender o que você fez.
Assim, você também deve procurar de uma maneira legível, entendível facilmente pelos outros.
Você tem que querer mostrar seu trabalho pros outros.

Como ser um bom programador de Perl

Outra frase bem conhecida no mundo Perl é:
There is more than one way to do it

Ou seja, há sempre mais de uma maneira de fazer algo em Perl.
É uma linguagem tão flexível, que você nunca vai achar dois scripts iguais de Perl.
Programas feitos em Perl são como uma impressão digital, cada um é diferente e é a cara do seu criador.

O que vai definir que você será um bom programador, é seu estudo inicial, aqui no Perl Progressivo.
Não existe maneira certa e errada de fazer código, existem maneiras e maneiras, por isso, é importante aqui no início você começar bem, pra fazer bons códigos.

Por isso, no restante do curso, leia com atenção, com calma, sem pressa.
Se certifique que entendeu tudo direitinho, se faz sentido na sua cabeça.

Não decore, aprenda. Tem que fazer sentido, você tem que entender o que está fazendo, o que está acontecendo e o motivo disso.

Leia aqui, faça pesquisas na internet, visite fórums, pergunte em redes sociais ou aqui nos comentários do site. Faz parte do aprendizado.

E o principal: faça os códigos, escreva, digite.
É bom ver vídeos...mas só assistir ou ler, nunca vão te transformar num programador.

Bote a mão no código, digite, erre, reescreva, é assim mesmo que se aprende.

Falando nisso, é importante persistir.
Estude. Não entendeu? Leia de novo. Nada ainda? Pesquise, tire dúvidas.

Vai fazer um exercício, não conseguiu? Tenta de novo.
Não saiu nada? Tenta mais uma vez.
Na estaca zero? Saia, tome um café, veja um vídeo no youtube, volte e tente de novo.

Saiu um código grande, feio, confuso?
É assim mesmo, aos poucos você vai melhorando.

Dá vontade de desistir, fazer outra coisa?
Relaxa a cabeça, isso é extremamente normal, acontece com todos.
O importante é voltar a estudar, voltar e tentar resolver o problema de novo.

Programação é isso, resolver problemas, usar criatividade, raciocínio, é 99% transpiração e 1 % inspiração.

Aquela galera que faz código maravilhoso, em poucas linhas, sem erro algum, não chegaram naquele ponto de um dia pro outro, ninguém nasce sabendo isso.

Foi suando, ralando, estudando, tentando de novo fazer o script funcionar, foi lendo código dos outros, perguntando, tirando dúvidas...

Ok?
Vamos colocar a mão na massa?

Agora, vamos aprender como criar nosso primeiro programa em Perl no próximo tutorial.
Ler Tutorial

Imprimindo informações na Tela: PRINT e SAY em Perl

Neste tutorial de Perl, vamos aprender como exibir informações no terminal de comando, usando as funções print e say, do Perl.

Baixar apostila de Perl em PDF
Baixar e estudar pela apostila em PDF

Imprimindo informações no terminal de comando

print, em inglês, significa imprimir.

Imprimir, pra gente, lembra muito fazer uma impressão, numa impressora, né?
Na verdade, é um termo mais amplo, significa exibir.

Assim, quando falamos em imprimir ou printar, estamos falando em simplesmente mostrar alguma informação, um texto, um número ou qualquer coisa.

É a primeira maneira que aprenderemos sobre como trocar informações entre a máquina e a pessoa que está utilizando ela. Todos os comandos e operações, ocorrem 'escondidos', no hardware de seu computador, então usamos algum comando que exibe pra gente esses resultados.

As maneiras mais comuns de exibir dados de informação são através das função print e say, em Perl, que simplesmente mostram na tela do terminal de comando as informações que quisermos, vamos lá aprender como usá-las ?

A função print do Perl

Essa função (comando que faz alguma coisa específica) nós já usamos no tutorial de como programar o script Olá, mundo! em Perl.

Basta digitar o comando print e escrever qualquer coisa entre aspas duplas ou simples e terminar o comando com o ponto-e-vírgula ;
Prontinho. Vai aparecer na tela o que você digitou entre as aspas.

Esses textos, em Perl, são chamados de strings.

Teste:
#!/usr/bin/perl
print "Curso Perl Progressivo";
O resultado vai ser:
Curso Perl Progressivo

Porém ficou feio, pois ficou 'colado' com uma linha de texto do terminal de comando.

Caractere de quebra de linha: \n

Parece resolvermos esse problema, basta darmos um 'enter' dentro da string.

O enter, em computação, é simbolizado por: \n
Sempre que o Perl lê esse comando, ele dá um pulo, uma quebra de linha.

Experimente:
#!/usr/bin/perl
print "Curso Perl Progressivo \n";
O resultado foi o que vimos no tutorial passado, bem mais bonitinho e organizado, não é?

E para exibir o resultado abaixo:
Curso de Perl online grátis

Como você programaria o script em Perl abaixo ?
Você pode fazer tanto assim:
#!/usr/bin/perl
print "Bem vindos ao curso: \n";
print "Perl Progressivo \n";
Como tudo em uma linha só, veja:
#!/usr/bin/perl
print "Bem vindos ao curso:\nPerl Progressivo\n";

A função SAY do Perl

Programador é um bicho preguiçoso. Gosta de fazer tudo da maneira mais rápida, simples e econômica possível, quanto menos trabalho, melhor.

Como se a função print já não fosse simples o bastante, inventaram a função say.
Troque print por say e veja o resultado:
#!/usr/bin/perl
use v5.010;
say "Curso Perl Progressivo";
Notou?
Ela, automaticamente, já dá a quebra de linha ao final, não precisa usar o caractere \n de quebra de linha.
Bacana, não?

Exercícios de PRINT em Perl

1. Frase na tela - Implemente um programa que escreve na tela a frase "O primeiro programa a gente nunca esquece!".

2. Etiqueta - Elabore um programa que escreve seu nome completo na primeira linha, seu endereço na segunda, e o CEP e telefone na terceira.

3. Letra de música - Faça um programa que mostre na tela uma letra de música que você gosta (proibido letras do Justin Bieber).

4. Mensagem - Escreva uma mensagem para uma pessoa de quem goste. Implemente um programa que imprima essa mensagem, tire um print e mande pra essa pessoa. Diga que foi um vírus que algum hacker instalou em seu computador.

5. Ao site - Faça um programa que mostre na tela o que você deseja fazer usando seus conhecimentos de Perl.



6. Quadrado - Escrever um programa que mostre a seguinte figura:

XXXXX
X   X
X   X
X   X
XXXXX

7. Tabela de notas - Você foi contrato por uma escola pra fazer o sistema de boletim dos alunos. Como primeiro passo, escreva um programa que produza a seguinte saída:
ALUNO(A)          NOTA
=========         =====
ALINE              9.0  
MÁRIO              DEZ
SÉRGIO             4.5    
SHIRLEY            7.0

8. Letra grande - Elabore um programa para produzir na tela a letra P, de Perl Progressivo. Se fosse
‘L’, seria assim:
L
L
L
LLLLL

9. Menu - Elabore um programa que mostre o seguinte menu na tela:
Cadastro de Clientes
0 - Fim
1 - Inclui
2 - Altera
3 - Exclui
4 - Consulta
Opção: 

10. Pinheiro  - Implemente um programa que desenhe um "pinheiro" na tela, similar ao abaixo.
Enriqueça o desenho com outros caracteres, simulando enfeites.
       X
      XXX
     XXXXX
    XXXXXXX
   XXXXXXXXX
  XXXXXXXXXXX
 XXXXXXXXXXXXX
XXXXXXXXXXXXXXX
       XX
       XX
      XXXX

Escreva seus scripts nos comentários!
Ler Tutorial

Como Programar em Perl - Hello, world!

Agora que já te apresentamos a linguagem de programação Perl, vamos te mostrar o que é necessário fazer para, de fato, começar a programar em Perl.

Ou seja, vamos ver o que tem que faz, baixar, onde escrever, como rodar e tudo mais.
Baixar apostila de Perl em PDF
Baixar e estudar pela apostila em PDF

Como instalar o Perl

Primeiro passo é, obviamente, instalar o Perl.
Se você estiver usando um sistema Unix, como o Linux, ele já tem o Perl instalado por padrão.
Linux é, de longe, o melhor sistema operacional para programadores. Não é difícil, nem complexo, nem precisa ser um gênio ou hacker para usar o Linux.

Aliás, acho até mais fácil e intuitivo usar Linux.
Se quer levar a sério a profissão de programador, sugiro que instale alguma distribuição do Linux, como o Ubuntu e comece a aprender.

Lembre-se: todo mundo sabe usar Windows ou Mac, não tem nada demais nisso, até minha avó usa.
Mas saber usar Linux é um tremendo e interessante diferencial, vai te colocar automaticamente na frente de muuuuuitos programadores e profissionais de TI.

Mas vamos voltar ao Linux, rapidinho.
Abra o terminal de comando e digite: perl -v
Esse comando vai exibir a versão do seu Perl.

Para quem usa outra plataforma, como Windows, acesse o site oficial da linguagem:
https://www.perl.org/

Depois vá em download and get started.
Escolha sua plataforma (Windows, Linux...)

Se for Windows, provavelmente vai ter duas opções: ActiveState Perl e Strawberry.
Escolha a versão Strawberry.

Baixe o executável, aguarde o download, rode como administrador e faça a instalação do Perl.

Como Programar o Primeiro Script em Perl

Abra um editor de textos, pode ser o bloco de notas.

Se preferir, até sugerimos usar algum do tipo Notepad++ ou Sublime, pois vão deixar seu código melhor formatado, organizado, coloridinho e tal, uma belezura só.

Digite o simples comando:

print "Hello, world \n";

Agora salve seu arquivo com o nome: hello.pl
É muito importante ter a extensão pl, de Perl, ok?

Cuidado que as vezes o bloco de notas pode querer salvar como: hello.pl.txt
Não deixe isso acontecer.

Sugerimos salvar na pasta: C:\perl
Logo, o endereço do seu script será: C:\perl\hello.pl

Como rodar um script em Perl

Abra o terminal de comandos, o MS DOS ou shell do Linux.
Se estiver no Windows, digite:
cd C:\perl

No meu Linux, eu salvei em:
/home/user/perl

Agora que está na pasta/diretório do script, dê o comando pro Perl interpretar:
perl hello.pl

Se não funcionar teste: perl -w hello.pl no Windows

O resultado é esse:

Como programar em Perl


E prontinho, vai aparecer a mensagem na tela: Hello, world
Se conseguiu, você já é, oficialmente, um programador Perl, afinal, já fez e rodou seu primeiro script.

A linha hash-bang no Linux e Windows

Se estiver usando um sistema Unix, como Linux ou Mac, pode ser interessante tornar seu script Perl em um executável.

Vamos lá, primeiro torne seu script hello.pl em um executável:
chmod +x hello.pl

Agora rode ele:
./hello.pl

E veja que vai ter um erro.
Isso ocorre porque o terminal vai tentar ler e interpretar o conteúdo, e vai usar (geralmente) o bash pra interpretar esses comandos.

Mas não queremos que o shell interprete isso, e sim o Perl.
Para isso, usamos na primeiríssima linha de código Perl, o comando de hash-bang, veja como fica nosso código:

#!/usr/bin/perl
print "Hello, world!\n";

Adicionamos ao script o código: #!/usr/bin/perl (chamado hash-bang)
Pronto. A primeira linha diz ao interpretador do shell que queremos que o Perl interprete o script, e dizemos onde esse interpretador está localizado (no diretório /usr/bin e se chama perl).

Isso ocorre por conta do código especial #!, chamado de shebang.

Se você estiver em outra plataforma, como o Windows, e se o interpretador se chama 'perl.exe' e está localizado na pasta  C:\perl\bin, sua hash-bang será:

#!C:\perl\bin\perl.exe

Agora tente rodar e veja que vai sair a mensagem "Hello world!" lindíssima na tela do terminal de comando.

Em nosso curso de Perl, vamos usar a linha shebang do Linux, pois é nosso sistema operacional e a maioria das redes e sistemas também usam Linux.

Mais uma vez: instale o Linux, é simples de baixar, instalar e usar. Vai ser um diferencial na sua carreira de programador, você tem poderes maiores e ilimitados nesse sistema operacional. Até minha avó sabe usar Windows, se diferencie, aprenda Linux também, você vai amar.

IDE Sublime Text

Agora que aprendemos como instalar, programar e executar nossos scripts, vamos aprender um 'truque', que é usar uma IDE, ou seja, ou um programinha mais bonitinho para programar.

Nós vamos usar o Sublime Text. Pesquise sobre ele no Google e se desejar usá-lo, baixe e o instale.
Abra o programa Sublime Text e vá em: Tools -> Build System -> New Build System

Escreva o seguinte comando no arquivo que vai aparecer:

{
    "cmd": ["perl", "-w", "$file"],
    "file_regex": ".* at (.*) line ([0-9]*)",
    "selector": "source.perl"
}

Salve como: "Perl.sublime-build" na pasta "~/.config/sublime-text-3/Packages/User" do Sublime.

Agora abra um novo arquivo, salve como ola.pl e dê control+B, para rodar o script.
O resultado vai aparecer logo abaixo.

Como programar em Perl no Sublime Text

Veja como o programa é mais bonitinho e organizado, ele vai te ajudar a indentar o código (dar espaçamento e quebras de linha corretamente), bem como colorir comandos, strings, etc, além de rodar o código diretamente lá sem precisar dar nenhum comando.

Uma verdadeira mão na roda programar em Perl no Sublime Text.
Ler Tutorial

A profissão das linguagens de programação

Não está fácil para ninguém.
Nem para as linguagens de programação.

Então elas decidiram ir à luta e procurar algum emprego.
Confira agora quais os cargos e funções que as linguagens de programação exercem.






Ler Tutorial

Veja também: