[Cascavel-pm] Name Spaces
Flavio S. Glock
fglock em gmail.com
Quarta Julho 4 14:05:39 PDT 2007
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
>
Mais detalhes sobre a lista de discussão Cascavel-pm