[SP-pm] Desculpa a lista

Daniel de Oliveira Mantovani daniel.oliveira.mantovani em hotmail.com
Terça Junho 10 19:01:13 PDT 2008



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 ?
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 elementopush    - adiciona elementos ao final do arrayshift   - remove o primeiro elemento do array e retorna este elementosplice  - adiciona or remove elementos em qualquer lugar do arrayunshift"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 elementopush    - adiciona elementos ao final do array
shift   - remove o primeiro elemento do array e retorna este elementosplice  - adiciona or remove elementos em qualquer lugar do array
unshift - adiciona elementos no início do arrayA 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á!


_______________________________________________

SaoPaulo-pm mailing list

SaoPaulo-pm em pm.org

http://mail.pm.org/mailman/listinfo/saopaulo-pm


-- 
"o animal satisfeito dorme". - Guimarães Rosa

_________________________________________________________________
Instale a Barra de Ferramentas com Desktop Search e ganhe EMOTICONS para o Messenger! É GRÁTIS!
http://www.msn.com.br/emoticonpack
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/saopaulo-pm/attachments/20080610/d5845d10/attachment.html 


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