[Rio-pm] Digest Rio-pm, volume 56, assunto 18

Gabriel Blum blum em pobox.com
Terça Outubro 20 19:44:33 PDT 2009


Adicionalmente, o termo 'our' declara a variavel como global ao arquivo perl
(package), em oposicao ao my, que declara como variavel local.
usando o exemplo do fernando

use strict;
our $var = "lalala"
print $var;  # imprime lalala
{
    print $var;  # imprime lalala
}
alguma_funcao();
exit 0;
sub funcao() {
   print $var; # imprime lalala
}

É interessante notar que em perl o a linha de declaração de variavel tem
mais coisas que noutras linguagens como C, javapscript, ou java. Numa
declaração de variavel em outras linguagens, normalmente se especifica o
tipo da variavel, o nome dela, e opcionalmente um valor inicial.
int numero = 1;  // tipo = inteiro, nome ="numero", valor inicial = "1"

Em perl existe tem algo a mais, o escopo léxico, que pode ser local (my) ou
global (our)
my $numero = 1; # escopo local (my), tipo = escalar ($), nome = "numero",
valor inicial = 1;

Abraços,
GB

2009/10/20 Fernando Oliveira <fernandocorrea em gmail.com>

> Usar o my é independente se a variavel tem letra maiuscula ou minuscula...
>
> se vc não usa strict, o my "nunca" é obrigatório...
> mas se vc usa strict, vc tem q declarar a variavel na 1a vez q vc usa a
> variavel...
>
> exemplo:
>
> use strict;
> my $var = "lalala";
> print $var; #imprime lalala
> $var = "lelele";
> print $var; #imprime lelele
> {
>    print $var; #imprime lelele
> }
> {
>    my $var = "lilili";
>    print $var; #imprime lilili
> }
> print $var; #imprime lelele
>
>
> Just another Perl Hacker,
> Fernando (SmokeMachine)
> http://perl-e.org
>
>
> 2009/10/20 Júnio César Silva <cesarjunio.silva em gmail.com>
>
> Muito obrigado a todos pelas considerações. Percebo que participantes são
>> bem dispostos. Atualmente estudo pelos materias na internet e pelo livro
>> Perl/Guia Completo - manual de referência rápida, afinal o livro viajou do
>> RJ para MG.
>> Meus amigos, no script ao escrever em letra minuscula uma variável scalar
>> é obrigatório usar o 'my' antes?
>>
>> Abraços...
>> Júnio César Silva
>>
>> 2009/10/20 <rio-pm-request em pm.org>
>>
>>> Enviar submissões para a lista de discussão Rio-pm para
>>>        rio-pm em pm.org
>>>
>>> Para se cadastrar ou descadastrar via WWW, visite o endereço
>>>        http://mail.pm.org/mailman/listinfo/rio-pm
>>> ou, via email, envie uma mensagem com a palavra 'help' no assunto ou
>>> corpo da mensagem para
>>>        rio-pm-request em pm.org
>>>
>>> Você poderá entrar em contato com a pessoa que gerencia a lista pelo
>>> endereço
>>>        rio-pm-owner em pm.org
>>>
>>> Quando responder, por favor edite sua linha Assunto assim ela será
>>> mais específica que "Re: Contents of Rio-pm digest..."
>>>
>>>
>>> Tópicos de Hoje:
>>>
>>>   1. Re: Olá a Todos! (Fernando Oliveira)
>>>   2. Re: Olá a Todos! (Fernando Oliveira)
>>>
>>>
>>> ----------------------------------------------------------------------
>>>
>>> Message: 1
>>> Date: Tue, 20 Oct 2009 16:26:48 -0200
>>> From: Fernando Oliveira <fernandocorrea em gmail.com>
>>> Subject: Re: [Rio-pm] Olá a Todos!
>>> To: Perl Mongers Rio de Janeiro <rio-pm em pm.org>
>>> Message-ID:
>>>        <f40026c0910201126o4d8d7a81w78b9bde185790812 em mail.gmail.com>
>>> Content-Type: text/plain; charset="iso-8859-1"
>>>
>>> 2009/10/20 Claudio Pereira <indiox em gentoobr.org>
>>>
>>> > 2009/10/20 Gabriel Blum <blum em pobox.com>:
>>> > > Brother, perl é o que há... cuidado porque depois de aprender perl
>>> você
>>> > não
>>> > > vai mais querer programar em outra coisa :-D
>>> > > Eu costumo mostrar para os iniciantes e para os intermediários, a
>>> titulo
>>> > de
>>> > > curiosidade e desafio, a seguinte linha :-D
>>> > > sub TIEHANDLE {
>>> > > bless [ map { \$_ } @_[1..$#_] ], $_[0];
>>> > > }
>>> > > Não é lindo?? Uhauahuha Desvendar isso daí proporciona, e uma linha
>>> só,
>>> > uma
>>> > > ótima jornada por alguns aspectos fodásticos do perl, como map,
>>> bless,
>>> > tie,
>>> > > a variavel default, contextos scalar e de lista, construtor [ ],
>>> > > dereferenciação, orientação a objeto, o operador '..'  tudo numa
>>> simples
>>> > > linha, que coisa linda linda linda :-D
>>> > > Abraços,
>>> > > GB
>>> >
>>> > Pode ser lindo, tanto como eu gosto de JAPH, e alguns gostam brincar
>>> > de Golf! O Damian Conway não ia gostar de ver isso num código;
>>> >
>>> > Para projetos e códigos que precisarem de manutenção futura, é bom
>>> > usar as Boas Práticas, e mostrar isso a um novato, nem sempre é legal.
>>> > Tem de tomar cuidado, pois alguns usuários novatos podem ser assustar
>>> > com essas linhas. ;-)
>>> >
>>> > Mas como você disse, apresentar como curiosidade e desafio, tudo bem!
>>> :-)
>>> >
>>> > ps: Por falar em desafios, o Fernando cansou de brincar de Golfe?! :P
>>> >
>>> Cansei nada! só tô sem tempo...
>>> Mas manda um desafio aí q agente brinca!
>>>
>>> >
>>> > [  ]'s
>>> > Claudio P Costa
>>> > http://indiox.net
>>> > indiox em indiox.net
>>> > _______________________________________________
>>> > Rio-pm mailing list
>>> > Rio-pm em pm.org
>>> > http://mail.pm.org/mailman/listinfo/rio-pm
>>> >
>>>
>>> Just another Perl Hacker,
>>> Fernando (SmokeMachine)
>>> http://perl-e.org
>>> -------------- Próxima Parte ----------
>>> Um anexo em HTML foi limpo...
>>> URL: <
>>> http://mail.pm.org/pipermail/rio-pm/attachments/20091020/679403ac/attachment-0001.html
>>> >
>>>
>>> ------------------------------
>>>
>>> Message: 2
>>> Date: Tue, 20 Oct 2009 16:32:37 -0200
>>> From: Fernando Oliveira <fernandocorrea em gmail.com>
>>> Subject: Re: [Rio-pm] Olá a Todos!
>>> To: Perl Mongers Rio de Janeiro <rio-pm em pm.org>
>>> Message-ID:
>>>        <f40026c0910201132h3bab6d0bv4de67aa5f12044b8 em mail.gmail.com>
>>> Content-Type: text/plain; charset="iso-8859-1"
>>>
>>> 2009/10/20 Gabriel Blum <blum em pobox.com>
>>>
>>> > >> de Golf! O Damian Conway não ia gostar de ver isso num código;
>>> >>
>>> >
>>> > Bom, posso trocar pra latim, daí tenho certeza que o Damian vai adorar,
>>> mas
>>> > nem por isso vai ser mais legível :-D
>>> > (
>>> >
>>> http://search.cpan.org/~dconway/Lingua-Romana-Perligata-0.50/lib/Lingua/Romana/Perligata.pm<http://search.cpan.org/%7Edconway/Lingua-Romana-Perligata-0.50/lib/Lingua/Romana/Perligata.pm>
>>> <
>>> http://search.cpan.org/%7Edconway/Lingua-Romana-Perligata-0.50/lib/Lingua/Romana/Perligata.pm
>>> >
>>> > )
>>> >
>>> Mas ele não recomenda nem um nem outro p/ codigo "sério" .
>>>
>>> >
>>> > Para projetos e códigos que precisarem de manutenção futura, é bom
>>> >> usar as Boas Práticas, e mostrar isso a um novato, nem sempre é legal.
>>> >>
>>> >
>>> > Alguns códigos exigem facilidade de leitura outros exigem performance a
>>> > todo custo, faz parte do jogo, é inevitável.
>>> >
>>> Mas esse código especificamente não me parece ter muito ganho sobre um
>>> com
>>> cada coisa na sua linha.
>>>
>>> >
>>> > Mas hein cara, tem coisas mto piores, você sabe.... Essa linha é
>>> > sofisticada mas a sintaxe é super simples. Quer assustar um aspira, de
>>> > verdade, é só usar uma regexpzinha :)
>>> >
>>> Nada! Perto de uns códigos obscuros, JAPHs e golfs q eu já vi, regex não
>>> assusta ninguém!
>>>
>>> >
>>> > _______________________________________________
>>> > Rio-pm mailing list
>>> > Rio-pm em pm.org
>>> > http://mail.pm.org/mailman/listinfo/rio-pm
>>>
>>> ps.: nunca me imaginei defendendo codigo "serio"... :P
>>>
>>> Just another Perl Hacker,
>>> Fernando (SmokeMachine)
>>> http://perl-e.org
>>> -------------- Próxima Parte ----------
>>> Um anexo em HTML foi limpo...
>>> URL: <
>>> http://mail.pm.org/pipermail/rio-pm/attachments/20091020/6192667f/attachment-0001.html
>>> >
>>>
>>> ------------------------------
>>>
>>> _______________________________________________
>>> Rio-pm mailing list
>>> Rio-pm em pm.org
>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>
>>> Fim da Digest Rio-pm, volume 56, assunto 18
>>> *******************************************
>>>
>>
>>
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20091021/07ff0a9b/attachment.html>


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