[SP-pm] Desculpa a lista

Fernando Oliveira fernandocorrea em gmail.com
Quarta Junho 11 10:03:49 PDT 2008


2008/6/10 Daniel de Oliveira Mantovani <
daniel.oliveira.mantovani em hotmail.com>:

>
> Mas, o livro então que está me confundindo olha só esse programa, ( jogo )
> que eu aprendi fazer com o livro:
>
> #!/usr/bin/perl
> $resultado = soma();
> if ($resultado == 7 or $resultado == 11) {
> $status = "ganhou";
> }
> elsif ($resultado == 2 or $resultado == 3 or $resultado == 12) {
> $status = "perdeu";
> }
> elsif ($resultado == 4 or $resultado == 5 or $resultado == 6 or $resultado
> == 8 or $resultado == 9) {
> $status = "continua";
> $pontos = $resultado;
> }
> while ($status eq "continua") {
> $resultado = soma();
> if ($resultado == 7) {
> $status = "perdeu";
> }
> elsif ($resultado == $pontos) {
> $status = "ganhou";
> }
> }
> print message();
>
> sub soma
> {
> ($dado1 , $dado2) = (indivi() , indivi());
> $somas = $dado1 + $dado2;
> print "Jogador lançou $dado1 + $dado2 e a soma é $somas\n";
> return $somas
> }
>
> sub indivi
> {
> return 1 + int( rand ( 6 ) );
> }
>
> sub message
> {
> $status = shift;
> return print "Parabéns você ganhou\n" if $status eq "ganhou";
> return print "Você perdeu\n";
> }
>
> Na sub message:
> tem lá:
> $stauts = shift;
> Mas seu apagar isso, o problema executa normalmente.
> isso retira o primeiro valor de $status correto ?
>
Antes de entender o funcionamento do shift(), vc tem q entender a diferença
entre scalar e array...

>
> Mas isso é uma coisa inútil concordam ?(Neste programa)
>
> Acho que o livro tinha que por um exemplo que o shift fosse realmente
> necessário no programa.
> "
>
>    - pop     - remove o último elemento do array e retorna este elemento
>    - push    - adiciona elementos ao final do array
>    - shift   - remove o primeiro elemento do array e retorna este elemento
>    - splice  - adiciona or remove elementos em qualquer lugar do array
>    - unshift"
>
> Isso eu já estudei.
> "ARGV", eu ainda não estudei.
>
>
> Daniel Mantovani
> "A sabedora é a virtude dos sábios."
> "Até um tolo pode passar por sábio e inteligente se ficar calado"
>
>
> ------------------------------
> Date: Tue, 10 Jun 2008 19:28:27 -0300
> From: shonorio em gmail.com
> To: saopaulo-pm em mail.pm.org
> Subject: Re: [SP-pm] Desculpa a lista
>
>
> Daniel,
>
> O pessoal já explicou o quê é shift, mas vou avançar um pouco mais e vou
> dividir o email em duas partes, sendo elas:
>
> operadores de array :
> Os operadores podem ser agrupados por função e os operadores responsável
> por 'manusear' arrays são :
>
>    - pop     - remove o último elemento do array e retorna este elemento
>    - push    - adiciona elementos ao final do array
>    - shift   - remove o primeiro elemento do array e retorna este elemento
>    - splice  - adiciona or remove elementos em qualquer lugar do array
>    - unshift - adiciona elementos no início do array
>
> A questão é que todos estes operadores precisam de pelo um dado/variável
> para trabalhar, o pop e shift por exemplo. Quanto o nome da variável não é
> definido aí acontece as mágias negras do Perl, as variáveis especiais
> (perldoc perlvar). Entre estas variáveis especiais temos duas muito
> utilizada e invisíveis, a '@_' e '$_'.
>
> A '@_' é o array padrão para os operadores que estão aguardando um array,
> ou seja, se você escrever :
> my $x = shift @meu_array; # o shift vai remover o primeiro elemento do
> array @meu_array e colocar na variável $x;
> my $x = shift; # o shift vair remover o primeiro elemento do array @_,
> porque você não definiu uma variável, e colocar na variável $x.
> E como você define este valor padrão, quando você passa valores para uma
> função, por exemplo:
> sub f {
>   my $v01 = shift;
>   my $v02 = shift @_; # esta faz o mesmo que o primeiro, só que estou
> declarando o @_
> }
> O '$_'  é a mesma coisa, mas ele é o valor padrão para operadores que
> trabalham com escalares.
>
> declaração de variáveis:
> O 'my' (nunca My), é um operador de declaração de escopo de variável. Faz
> parte da boa política de programação e perl e sempre será exigido quando
> você utilizar o pragma 'strict'. Então sempre, digo SEMPRE, começe um código
> em perl assim :
> #!/bin/perl
> use strict;
> use warnings;
>
>
> Agora, começe a dar uma lida na documentação, dê uma olhada no site
> www.perl.org.br, pois este teu livro está muito fraco. Se vc está no meio
> dele e ainda está com estas dúvidas.
>
> Abraços,
>
> Solli M. Honório
>
>
> 2008/6/10 Daniel de Oliveira Mantovani <
> daniel.oliveira.mantovani em hotmail.com>:
>
>  Pessoas, queria me desculpar com vocês por atitudes imaturas.
> Sei que tenho muito o que aprender, principalmente sobre Perl, e não existe
> lugar melhor para o aprendizado, do que com os Mestres Dobradores de Perl.
> Espero recuperar a elegância natural de um newbie.
> E espero recuperar isso com atitudes e perguntas construtivas.
> Para começar eu não intendi a utilidade do shift quando usado junto à uma
> variável,
> Exemplo:
> $variavel = shift;
> e também não intendi a utilidade do "My"
> Exemplo:
> my $variavel = shift;
> O My eu sei teoricamente o que ele faz, o shift eu sei usar ele
> perfeitamente com "Array", para retirar o primeiro argumento, porém o shift
> com variável e o My, na prática eu não intendi muito bem, pois como eu já
> disse é a minha primeira linguagem de programação.
> Gostaria que me mostrassem programas simples com shift junto à uma
> variável, e o My, sei que simples para vocês é dificilimo para mim, então
> pesso que escolham com cuidado.
>
> Obrigado.
>
> Abraços a todos.
>
> Daniel Mantovani
>
> ------------------------------
> Notícias direto do New York Times, gols do Lance, videocassetadas e muitos
> outros vídeos no MSN Videos! Confira já! <http://video.msn.com/?mkt=pt-br>
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
>
>
>
> --
> "o animal satisfeito dorme". - Guimarães Rosa
>
>
> ------------------------------
> Veja mapas e encontre as melhores rotas para fugir do trânsito com o Live
> Search Maps! Experimente já!<http://www.livemaps.com.br/index.aspx?tr=true>
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>



-- 
"para entender recursividade, primeiro é preciso:
 entender recursividade"
Fernando (SmokeMachine)
http://perl-e.org
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/saopaulo-pm/attachments/20080611/ead71b98/attachment.html 


Mais detalhes sobre a lista de discussão SaoPaulo-pm