Thread eine Frage zu objektorientertem Perl (149 answers)
Opened by ASDS at 2007-04-10 15:14

PerlProfi
 2007-04-17 16:33
#75867 #75867
User since
2006-11-29
340 Artikel
BenutzerIn
[default_avatar]
Eigentlich hat perl dir ja schon gesagt wo dein Fehler liegt:
Quote
"Can't locate object method "Neu" via packagge baum...etc.

Anscheinend gibt es keine methode Neu in deinem baum.pm.
Wobei ich das auch Baum.pm nennen würde.

Ausserdem sieht es nicht so aus, als ob das OOP wäre.
Deine Neu Methode sollte doch eigentlich ein Object zurücklieferen, keinen Array.
Und hinzufuegen wird wohl auch keine Klassenmethode sein, oder?
Genauso wenig wie ausgabe.
Bei allen 3 Methoden aufrufen hast du übrigens eine lexikalische Variable - @erstellebaum - in dem scope deiner Subroutine erstellt, welche den Rückgabewert bekommt und direkt danach vernichtet wird. Dass wolltest du bestimmt nicht.

In der if-Bedingung in BaumNeu ist übrigens noch ein Fehler, dass muss nicht == sondern =~ heißen und das push() willst du bestimmt nur ausführen, wenn eine Zahl eingegeben wurde. ( else{} )
Vielleicht möchtest du auch, dass bei ungültiger Eingabe nochmal nach einer Zahl verlangt wird, im Moment jedenfalls muss man keine 10 Zahlen eingeben. ( redo )

Du solltest dafür sorgen, dass deine Subroutinen alles was sie benötigen um richtig zu funktionieren, durch Parameter erhalten und nicht aus dem Hauptprogramm irgendwelche Variablen benutzen.

Viele deiner Fehler treten wohl auch auf, weil du deinen Programmcode nicht richtig strukturierst.

MfG

View full thread eine Frage zu objektorientertem Perl