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?

War es hilfreich?

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
scroll top