Perl: Referenzierung / Segen Frage
-
28-09-2019 - |
Frage
Die Idee ist es, eine Klasse zu implementieren, die eine Liste von [Arrays, Faden :: Conveyor Warteschlangen und andere Sachen] wird in einem TIEHASH Konstruktor,
use AbstractHash;
tie(%DATA, 'AbstractHash', \@a1, \@a2, \$tcq);
Was ist eine richtige Art und Weise Objektreferenzen übergeben (wie Thema erwähnt :: Förderer Objekte) so Arrayreferenzen in Konstruktor, so dass es auf die Objekte zugreifen kann? In jenen Fällen, wenn ein übergebene Objekt soll gesegnet sein?
Lösung
Soweit ich das beurteilen kann, Objekte sind nicht Objekte, es sei denn, sie sind bless
-ed.
sagte, dass das Konstruktor Argument würde einfach ein ArrayRef von Thread::Conveyor
Objekten sein:
my $data = AbstractHash->tie ( \@a1, \@a2, \$tcq );
, wo der Konstruktor in dem AbstractHash
Paket definiert ist:
sub tie {
my $class = shift; # Implicit variable, don't forget
my $data = {
someArray => +shift,
queues => +shift,
someValue => +shift,
};
# $data starts life as a hashref, make it an 'AbstractHash'
bless $data, $class; # $data is no longer a hashref
return $data; # AbstractHash object returned
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow