Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11711[/thread]

Zugriff auf anderes Package (klappt nicht) (Seite 2)



<< |< 1 2 >| >> 13 Einträge, 2 Seiten
KurtZ
 2008-04-28 02:01
#108922 #108922
User since
2007-12-13
411 Artikel
BenutzerIn
[default_avatar]
Gast+2008-04-27 23:03:25--
Und nur nochmal zu Sicherheit: Wenn ich die $public außerhalb des Blockendes oder in einer anderen Datei ohne den Packagenamen verwenden will, kann ich sie einfach per 'our $public' neu deklarieren, ohne das so der Inhalt gelöscht/überschrieben wird?


so sollte es sein, wenn wieder das gleiche Package gewählt ist!

Probiers doch bitte einfach aus und sag hier Bescheid.
TMTOWTDYOG (there's more than one way to dig your own grave)
Struppi
 2008-04-28 11:51
#108934 #108934
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Irgendwie finde ich du bringst etwas Verwirrung rein, es mag ja alles stimmen was du sagst, aber das Problem war, dass eine our Variabel im Scope wie eine lexikalische Variabel im Scope der Datei reagiert, also Dateiweit ohne package Verfügung ist. Dieser globale Zugriff trifft nicht mehr zu, wenn das package in einer extra Datei ist, dann ist eine our Variabel nur noch mit dem package zugreifbar.

Wenn eine Variabel in einem anderen package verwendet werden soll, muss sie exportiert werden oder eben mit our und $package::variabel angesprochen werden.
KurtZ
 2008-04-28 13:09
#108945 #108945
User since
2007-12-13
411 Artikel
BenutzerIn
[default_avatar]
Gast+2008-04-27 19:44:47--
...allerdings ließt man doch immer, man soll solche Variablen vermeiden, wenn es nicht unbedingt nötig ist(?).

Es gilt als guter Stil Variablen in anderen Dateien (Module, Klassen,...) aus Gründen der Wartbarkeit nicht direkt zu manipulieren, sondern Zugriffsfunktionen (z.B. getter und setter) dafür zu schreiben.

Ist die Variable durch my auch privat, kann man sich darauf verlassen dass Zugriffe nur über die Zugriffsfunktionen erfolgen können und müssen.

Nachtrag: Nichstdestotrotz sind noch viele Module im Umlauf wo Variablen direkt manipuliert werden.
TMTOWTDYOG (there's more than one way to dig your own grave)
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2008-04-27 01:10.