[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