Baixar e estudar pela apostila em PDF |
Interatividade em Perl
Até o momento, nossos scripts funcionaram sempre de uma determinada maneira, sempre repetindo o mesmo, e sempre resultando nas mesmas coisas (imprimindo informações na tela).Mas será que é isso que acontece na maioria dos programas que usamos?
Vamos pensar um pouco.
Se você clica numa música, seu player toca nela.
Se clica em outra, é outra que vai rodar.
Se você entra em sua rede social, algumas informações aparecem.
Se outra pessoa fizer o login, coisas diferentes vão aparecer.
Se digitar uma determinada URL, vai pra um site.
Se digitar outra, vai pra outro site.
Ou seja, os programas, scripts e sistemas reagem de maneira diferente dependendo das informações que recebem do usuário. Há uma interatividade, a máquina faz determinada coisa se você fizer determinada ação.
Recebendo Informações do Usuário em Perl: <STDIN>
Vamos fazer com que a pessoa que vai usar nossos scripts em Perl forneçam dados, informações ao programa.Inicialmente, vamos pegar essas informações do teclado do usuário (outras maneiras podem ser usadas, como pegar dados de um formulário da internet, de um arquivo de sua máquina, de um determinado local da tela que a pessoa clicou, etc etc).
Vamos fazer isso através do operador <STDIN>.
Para armazenamos uma entrada do teclado e armazenarmos na variável $minha_variavel, fazemos:
- $minha_variavel = <STDIN> ;
Rode o script pelo terminal de comando.
Note que primeiro ele exibe o primeiro print do script, depois não acontece nada no programa.
Isso ocorre porque o Perl chegou no <STDIN> (standard input, ou entrada padrão) e ele fica esperando o usuário digitar algo e apertar o ENTER.
Digite "Curso Perl Progressivo".
Em seguida, ele printa na tela a variável, que armazena o que você digitou, veja o resultado:
A função chomp do Perl
Vamos criar um script que pede ao usuário um dado, um número, por exemplo, e em seguida printa ele na tela:Note uma coisa curiosa, após imprimir o número na tela, há uma quebra de linha:#!/usr/bin/perl print "Digite um numero: "; $num = <STDIN>; print "Você digitou: $num";
Mas não tem o caractere \n no script, isso ocorreu por quê?
O que acontece após digitarmos o número?
Demos enter.
Então, na variável $num não tem apenas "2112" armazenado.
Na verdade, tem "2112\n", com a quebra de linha, pois você deu enter.
Porém, nem sempre queremos esse troço ao final. Se formos trabalhar com números, por exemplo, queremos apenas o 2112 e nada de \n, concorda?
Então, aí que entra a função chomp().
Basta colocar a variável dentro dos parêntesis e essa função vai tirar o \n.
Veja como fica o código usando a função chomp():
#!/usr/bin/perl print "Digite um numero: "; $num = <STDIN>; chomp($num); print "Você digitou: $num";
E o resultado:
Agora sim, temos só o número armazenado na variável $num!
Podemos até dar uma enxugada ainda maior em nosso código:
#!/usr/bin/perl print "Digite um numero: "; chomp($num = <STDIN>); print "Você digitou: $num";Foda, esse Perl, não é?
Exercício
Baixe e instale o Visual Studio Code.Crie um arquivo "perlprogressivo.pl", coloque os scripts desse tutorial, vá em "Terminal -> Run Active File", conseguiu rodar?
Nenhum comentário:
Postar um comentário