[SP-pm] Desculpa a lista

Solli Honorio shonorio em gmail.com
Terça Junho 10 15:28:27 PDT 2008


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
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/saopaulo-pm/attachments/20080610/567f6053/attachment.html 


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