Thread Can't call method - Wertzuweisung schlägt fehl? (16 answers)
Opened by Karakash at 2011-03-24 09:51

Gast Karakash
 2011-03-24 16:09
#146879 #146879
So: Der Code hier ist lauffähig und das meiste konnte ich umsetzen - mein einziges PRoblem ist in den Kommentaren niedergelegt.
Habt irh nochmal einen Tipp für mich? ;)

Code: (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!perl -w

use strict;

package initialize;
sub new {

my $class = shift;
my $name = shift;
bless \$name,$class;

}

sub IsFulfilled{
my $name = $_[1]; #Boolean ob etwas stattgefunden hat
return $name ;

}

package Method;
use base qw(initialize);


sub checkIsFulfilled {
print $_[0]->IsFulfilled($_[1]);
}
package NotMethod;
use base qw(initialize);

sub checkIsFulfilled() {

print $_[0]->IsFulfilled($_[1]*(-1)+1); # Umkehrung Method

}

package ANDArray;
use base qw(initialize);
sub checkIsFulfilled() {
foreach my $k (keys %{$_[1]}) # hier werden alle Values durchgelaufen und ihre Methode checkIsFulfilled aufgerufen.Liefern alle Methoden ein true ist alles in Ordnung
{
$_[1]{$k}->checkIsFulfilled($_[1]{$k}->IsFulfilled(1)); # An dieser Stelle hänge ich - Ich möchte ja auf den Wert zugreifen, den ich in der main bereits gesetzt habe mit: $method->IsFulfilled(1);
# Ich möchte quasi auf $_[1]{k}->IsFulfilled zugreifen - den Wert, den ich in der Main bereits gesetzt habe - und ihn hier nicht erst deklarieren. Wie realisiere ich das, bzw was hab ich übersehn?
#derzeitige Ausgabe: 10 - somit haben wir bei der NotMethod eine erfolgreiche Umkehrung.
}
}
package ORArray; #zukünftige Implementation: Liefert eine Methode ein true ist alles in Ordnung
use base qw(initialize);

package main;

my $method = Method->new("First Method");
my $notmethod = NotMethod->new("Second Method");
$method->IsFulfilled(1);# Irgendwann im Programm werden zu allen Methoden ihr Status "IsFulfilled" gesetzt
$notmethod->IsFulfilled(0);

#Zum Schluss gibt es einen Hash, in welchem alle Methoden stehen. Als Value wird eine Instanz übergeben und überprüft, ob der Hash true oder False zurückliefert.
my %hash = ('method' => $method,'notmethod'=>$notmethod);
my $ANDArray = ANDArray -> new ("AndArray");
$ANDArray -> checkIsFulfilled(\%hash);

Last edited: 2011-03-24 16:18:59 +0100 (CET)

View full thread Can't call method - Wertzuweisung schlägt fehl?