[Cascavel-pm] Res: Name Spaces

Daniel ® Antunes danielrantunes em yahoo.com.br
Quarta Julho 4 18:13:16 PDT 2007


Legal, mas por que fazendo a declaração com o "my" dentro do package test eu não consigo enxergá-la no package main usando $test::dataTest{1} ?
 
Daniel ® Antunes
profissional de informática
msn daniel.legend em terra.com.br
mobile + 55 11 8965 2999
gnu/linux user #238553



----- Mensagem original ----
De: Flavio S. Glock <fglock em gmail.com>
Para: Cascavel Perl Mongers <cascavel-pm em pm.org>
Enviadas: Quarta-feira, 4 de Julho de 2007 18:05:39
Assunto: Re: [Cascavel-pm] Name Spaces


O 'my' declara uma variável que só pode ser vista dentro do bloco atual.

O %test::dataTest é uma variável global, pode ser vista de qualquer lugar.

O 'our' declara que %test::dataTest é o mesmo que %dataTest, dentro do
bloco atual.

Em 04/07/07, Daniel (r) Antunes<danielrantunes em yahoo.com.br> escreveu:
>
>
>     Oi Amigos, duvidazinha conceitual :
>
> #!/usr/bin/perl -w
> use strict;
> package test;
> my %dataTest=( 1   => 'TEST 1',
>                             2   => 'TEST 2',
>                             3   => 'TEST 3',
>                             9   => 'TEST 9',
>                             10  => 'TEST 10',
>                             13  => 'TEST 13',
>                             43  => 'TEST 43',
>                             16  => 'TEST 16',
>                             44  => 'TEST 44',
> );
> print $dataTest{1},"\n\n";
> package main;
> print $test::dataTest{1},"\n\n";
>
>     Este script resulta nisto :
>
> daniel em sun4w_nodeF:~/bin$ ./testNS.pl
> TEST 1
>
> Use of uninitialized value in print at ../testNS.pl line 16.
>
>     Agora o mesmo script com uma pequena troca de "my" para "our" :
>
> #!/usr/bin/perl -w
>  use strict;
>  package test;
> our %dataTest=( 1   => 'TEST 1',
>                                2   => 'TEST 2',
>                                3   => 'TEST 3',
>                                9   => 'TEST 9',
>                                10  => 'TEST 10',
>                                13  => 'TEST 13',
>                                43  => 'TEST 43',
>                                16  => 'TEST 16',
>                                44  => 'TEST 44',
>  );
>  print $dataTest{1},"\n\n";
>  package main;
>  print $test::dataTest{1},"\n\n";
>
>      E o resultado deste script é :
>
> daniel em sun4w_nodeF:~/bin$ ./testNS.pl
>  TEST 1
>
>  TEST 1
>
>     O correto é o uso do "our" mesmo ou usando "my" eu consigo de alguma
> forma enxergar a variável dataTest no namespace main ?
>     Obrigado.
>
>
> Daniel (r) Antunes
> profissional de informática
> msn daniel.legend em terra.com.br
> mobile + 55 11 8965 2999
> gnu/linux user #238553
>
>
>  ________________________________
> Novo Yahoo! Cadê? - Experimente uma nova busca.
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm


       
____________________________________________________________________________________
Novo Yahoo! Cadê? - Experimente uma nova busca.
http://yahoo.com.br/oqueeuganhocomisso 
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070704/551de45e/attachment-0001.html 


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