HelpGuide - Ein Handbuch zur Hilfe

top  Quicksort

top  Original

Ein Dateisortierer

top  Probleme

Zugegeben: Das ist natürlich das Werk eines blutigen Anfängers. Von daher ist dies natürlich kein Vorwurf, soll es NIE sein. Auch geht es in diesem Programm vorrangig um den Algorithmus und nicht um Nutzgstauglichkeit. Doch gerade wenn es rekursiv wird, zigt sich, wie immens wichtig es ist, die Reicheweite von Variablen zu kennen. Es gibt mir also Gelegenheit, wieder ein paar wichtige Dinge zu nennen, die immer wieder vergessen werden, obwohl sie überall gepredigt werden:

Stilistisch gibt es noch auszusetzen, dass man eigentlich niemals mehrere print() Ausdrücke hintereinander setzen muss. Auch das explizite 'while(defined($arg=<LESEN>))' ist überflüssug. Es werden im Übermaß Variablen verwendet, entscheidende Variablen aber nicht deklariert, wie z.B. @vec. Das Setzen von Semikola an Stellen, an denen sie keinen Sinn machen, ist Perl egal, deutet aber auf Unsicherheit in Sachen Syntax hin. perldoc perlsyn

Entscheidende Fehler und Gründe, warum dieser Code nicht funktioniert ist, dass a) die Variablen in der Rekursion nicht "privatisiert"/lokalisiert werden und b) die Eingabedaten nicht numerisch sind und auch nicht so sortiert werden dürfen. Und was "lernt" uns das: mit strict und warnings wäre das nicht passiert, denn strict verlangt explizites Scoping und die Warnungen melden falsche Operatoren ("Argument foo isn't numeric...")

In Sachen Klammersetzung, Whitespace und Einrückung sollte man sowieso einmal perldoc perlstyle ansehen.

top  Ziele

Ziele des Neuverfassens sind durch die Probleme klar genannt. Nutzeringaben sind jetzt relativ sicher. Alle Fehler werden abgefangen und der Algo stimmt jetzt auch.

top  Ergebnis

Ein funktionierender Dateisortierer