[Warszawa-pm] Zanieczyszczenie przestrzeni nazw

Stanislaw Romanski stas w datos.pl
Pon, 31 Maj 2010, 12:44:10 PDT


Cześć,

Pomóżcie, bo nie potrafię zrobić a pilnie potrzebuję.

S.
==========================================================================

Pytanie (sformułowanie krótkie):

Jak można zanieczyścić pakiet nazwami z innego pakietu, który jest 
zdefiniowany w TYM SAMYM pliku ?

================

Pytanie (TO SAMO, forma rozwinięta)

Jeśli są 2 pliki: w jednym zdefiniowany pakiet a w drugim jego użycie, to 
wszystko dziala doskonale.

#   Plik package test229osobno.pm;
package test229osobno;
use strict;
use Exporter;
our @ISA = qw(Exporter);
our @EXPORT = qw( funa );

sub funa { print "in funa\n"; }
1;

# plik test229.pl
package main;
use strict;
use test229osobno;

funa();     # ok bez pisania pelnej kwalifikacji    test229osobno::funa()

Mozna uuruchomic
                                 perl test229.pl
i dziala cudnie.

================

Jesli połączymy te pliki w jeden, w ktorym na poczatku jest pakiet a potem 
'main' ktory wywoluje funkcję,
to jak zrobić, by nie trzyba było pisać pełnej kwalifikacji, z nazwą pakietu 
?.

#   Plik package test230.pl
package test230;
use strict;
use Exporter;
our @ISA = qw(Exporter);
our @EXPORT = qw( funa );

sub funa {
 print "in funa\n";
 }

package main;
use strict;
# use test230;  # cos w tym rodzaju ??

test230::funa();  # ok
funa();      # komunikat: nieznana funkcja pakietu 'main'
               # NIE WIEM CO ZROBIC BY TO DZIALALO ????





Więcej informacji o liście Warszawa-pm