[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