Schrift
[thread]8913[/thread]

eine Frage zu objektorientertem Perl (Seite 9)



<< |< 1 ... 6 7 8 9 10 11 12 ... 15 >| >> 150 Einträge, 15 Seiten
ASDS
 2007-04-17 17:41
#75877 #75877
User since
2007-01-29
115 Artikel
BenutzerIn
[default_avatar]
hm okay... alles ensprechend ausgebessert aber warum einmal:
Code: (dl )
    $ebaum =Baum->Neu(@liste1);

und dann wieder nur:
Code: (dl )
$ebaum ->ausgabe(@HinzufuegenListe)
das hab ich wohl noch nicht überrissen, aber nicht sagen... ich komm schon noch drauf...
ASDS
 2007-04-17 17:46
#75878 #75878
User since
2007-01-29
115 Artikel
BenutzerIn
[default_avatar]
mann, trotzdem hört das nicht auf mit den Fehlern...
"Use of uninitialized value in concatenation <.> or string at Baum.pm line 75, <STDIN>line 10.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sub ausgabe {
   my $self = shift;
   my $refvalue = shift;

    if (defined($self->{'ref_wurzel'}->{'linksweg'}))
    {
        ausgabe($$refvalue{'linksweg'})
    }

   print "$self->{'ref_wurzel'}->{'zahl'}\n";

    if(defined($self->{'ref_wurzel'}->{'rechtsweg'}))
    {
    ausgabe($$refvalue{'rechtsweg'})
    }
}
ausgabe($ref_wurzel);
irgendwo hier...
is der Code jetzt besser formatiert?

edit: ich weiß da sind schon wieder die kleinen MiniBlöcke, aber so hab ichs gelernt.\n\n

<!--EDIT|ASDS|1176817696-->
renee
 2007-04-17 17:48
#75879 #75879
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das passiert hier: print "$self->{'ref_wurzel'}->{'zahl'}\n";

Es wird nie ein Baum erzeugt, über die newtree-Methode muss man nochmal schauen.

Ja, so ist das viiieel besser formatiert. Danke...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
ASDS
 2007-04-17 17:55
#75880 #75880
User since
2007-01-29
115 Artikel
BenutzerIn
[default_avatar]
hm und was GEANU ist da falsch

hier die Methode, aber nachdem ich nicht genau weiß, was er mir mit diesem Fehler sagen will....weiß ich nicht so recht wo ich suchen soll....
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
60
61
62
63
64
65
66
sub newtree {
######################
# Erstellen des Trees

  my $ref_liste1 = shift;
  my $zahl = undef;
  my $ref_wurzel = undef;

    for my $zzahl (@$ref_liste1){
        my $refvalue = $ref_wurzel;

        if ($zahl)
            { while (1) {
############################
#Beginn des Vergleichs

               
 if($zzahl < $$refvalue{'zahl'}) {
               
 if(defined($$refvalue{'linksweg'}))
               
     {
               
         $refvalue = $$refvalue{'linksweg'};
               
     }
               
 else {
               
     $$refvalue{'linksweg'} = knot($zzahl);
               
     $zahl = $ref_wurzel;
               
     last; #Ende
                        }            
               
 }    

               
 #wenns Links nicht mehr weiter geht, geh rechts weiter
    
               
 else {    if ($zzahl > $$$refvalue {'zahl'}) {

                              if(defined($$refvalue{'rechtsweg'}))
                            
  {
               
         $refvalue = $$refvalue{'rechtsweg'};
                         }
               
 else     {
               
         $$refvalue{'rechtsweg'} = knot($zzahl);
               
 last;
               
     }    
                      }        
              }
     }
    
}
}
return($ref_wurzel);
}


SO hab ich das gerade aber NICHT formatiert...das schaut ja schrecklich aus...\n\n

<!--EDIT|ASDS|1176818521-->
PerlProfi
 2007-04-17 17:59
#75881 #75881
User since
2006-11-29
340 Artikel
BenutzerIn
[default_avatar]
Vielleicht wäre es für dich praktischer dir ein Wiki:Buch anzuschaffen.

edit: In dem code ist in einer if-Bedingung noch ein $ zuviel:
Code: (dl )
1
2
3
4
 #wenns Links nicht mehr weiter geht, geh rechts weiter


else { if ($zzahl > $$$refvalue {'zahl'}) { ### $$refvalue{'zahl'}


Und was renee gemeint hat war, dass $self->{'ref_wurzel'}->{'zahl'} beim Zeitpunkt der Ausgabe undef ist.
Das verursacht diese Warnung.\n\n

<!--EDIT|PerlProfi|1176818644-->
ASDS
 2007-04-17 18:06
#75882 #75882
User since
2007-01-29
115 Artikel
BenutzerIn
[default_avatar]
[quote=PerlProfi,17.04.2007, 15:59]Vielleicht wäre es für dich praktischer dir ein Wiki:Buch anzuschaffen.

edit: In dem code ist in einer if-Bedingung noch ein $ zuviel:
Code: (dl )
1
2
3
4
 #wenns Links nicht mehr weiter geht, geh rechts weiter
   
             
else {    if ($zzahl > $$$refvalue {'zahl'}) { ### $$refvalue{'zahl'}
[/quote]
hm, ja Perl in 21 Tagen hab ich eh, nur Therorie ist eine Sache die Praktische Umsetzung fällt mir hier nicht leicht. Und deshalb bin ich ziemlich froh, dass es hier Leute gibt, die so hoffnungslosscheinden Fällen wie mir helfen.

Ein Beispiel, ich hab z.B 4 Jahre Statistik in der HTL gehabt, immer nur mit 4ern herumgetümpelt, der Kopf für Statistik ist mir erst in der FH aufgegangen!!!!! und jetzt arbeite ich zeitweise ( je nach Bedarf) sogar in diesem Gebiet. Ich bin halt ein Mensch der für gewisse Themen viel Übung braucht und hilfe und denkanstöße, dafür - wenn mich das Thema wirklich interessiert, und ich würds nicht machen, wenn es nicht so wäre, bin ich nach ner Zeit wirklich gut darin. und Immerhin.. einiges is doch schon weitergegangen und das merk ich auch....
PerlProfi
 2007-04-17 18:11
#75883 #75883
User since
2006-11-29
340 Artikel
BenutzerIn
[default_avatar]
Ich finde nicht das es hoffnungslos ist. Dachte nur ein Buch könnte dir OOP besser erklären, ist schließlich auch ein weites Feld.
ASDS
 2007-04-17 18:14
#75884 #75884
User since
2007-01-29
115 Artikel
BenutzerIn
[default_avatar]
Ich find den Link toll, den mir renee gegeben hat. Den hab mich mir auch gleich in die Favourits gelegt.
Dennoch, muss ich jetzt schauen wo der Fehler liegt... entweder es is das {zahl} oder das {refvalue} obwohl er es returend...
ASDS
 2007-04-17 18:18
#75885 #75885
User since
2007-01-29
115 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
for my $zzahl (@$ref_liste1)

liegts an dem? kann es sein, dass er die Referenz zu liste1 nicht aufbauen kann?
ASDS
 2007-04-17 18:23
#75886 #75886
User since
2007-01-29
115 Artikel
BenutzerIn
[default_avatar]
Quote
Die Moduldatei im Beispiel enthält insgesamt fünf Subroutinen. Die erste davon ist die Konstruktorfunktion. Sie erhält üblicherweise den Namen new, könnte aber theoretisch auch einen anderen Namen erhalten. Wie eine Konstruktorfunktion aufgebaut ist, kann von Fall zu Fall variieren. In jedem Fall muss die Konstruktorfunktion jedoch einen Aufruf der Funktion bless enthalten. Diese bindet eine Referenz (einen Zeiger) an eine Klasse, sodass anschließend über diese Referenz auf das Objekt zugegriffen werden kann.
yuphiee und das erklärt auch meine Frage von vorhin genau... jetzt is mir das klar... ==> ] und das merk ich mir jetzt auch für die Zukunft!!!!!
Quote
Aus Code  
$ebaum =baum->hinzufuegen(...)
musst Du Code  
$ebaum->hinzufuegen(...)
machen. Es soll ja die Methode des Objekts aufgerufen werden.

Und aus Code  
$ebaum =baum->ausgabe(...)
muss Code  
$ebaum->ausgabe(...)
werden.
\n\n

<!--EDIT|ASDS|1176819962-->
<< |< 1 ... 6 7 8 9 10 11 12 ... 15 >| >> 150 Einträge, 15 Seiten



View all threads created 2007-04-10 15:14.