Thread Konstruktor mit einer Hashliste die ein Array beinhaltet?
(16 answers)
Opened by MGlutaeus at 2008-12-10 16:36
Hallo, ich komm nicht weiter!
Vielleicht ein eher einfaches Problem, aber ich als Perl-Anfänger komm einfach nicht drauf... Also mein Problem ist, einerseits dass ich ein Objekt in der "test.pl" Datei anlegen möchte, welches aus einer statischen Variable "instability", aus diversen übergebenen Werten in einer Hashlist (als das Objekt selbst) worin zusätzlich noch eine ArrayListe ist. Und dann sind noch kleinere Debugging Fehler auf die ich auch nicht draufkommen, evtl als Folgefehler? Vielleicht kann mir ein Perl-Profi einen paar Tips geben? test.pl Code (perl): (dl
)
1 2 3 4 5 use strict; use ca; $sandHeap = ca->new(5,1,20,'0.0','0','0.0'); print $sandHeap->{dim}; ca.pl Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 package ca; use strict; our $instability=4; # Konstruktor sub new { my $class = shift; my $self = {}; my @neighbourCells = {}; bless ($self, $class); foreach (qw/n iniTime finTime rndInit useNorth useDiagnoal/ ){ $self->set($_ => shift); } $self->set(neighbourCells => [@neighbourCells]); $self->addCells(); $self->addCellsNeighbors(); return $self; } # Methoden um Zellen zur Liste, und NachbarZellen der Zellen hinzuzufügen sub addCells{ my $self = shift; my $rnd=0; my $i=0; for($i=1; $i<=($self->{dim})*($self->{dim}); $i++){ if($self->{rndInit}){ $rnd = rand($ca::instability-1); } push($self->{cellList}, Cell->new($rnd)); } } sub addCellsNeighbors { my $self = shift; foreach($self->{cellList}) { $_->addNeighbors($self->{dim},$self->{useNorth},$self->{useDiagonal}); } } cell.pl Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 package cell; use ca; use strict; our $cellCount=0; #Konstruktor sub new { my $class = shift; my $self = {}; my @neighbourCells = {}; $cell::cellCount = $cell::cellCount + 1; my $index = $cell::cellCount; bless ($self, $class); foreach (qw/value/){ $self->set($_ => shift); } $self->set(valueAfter => 0); $self->set(index => shift); $self->set(neighbourCells => [@neighbourCells]); return $self; } Ansich geht es um ein Konstrukt für eine Lawinen Simulation ... |