Thread Kommaseparierte Listen bereichsweise ausgeben.
(28 answers)
Opened by Gast at 2006-04-14 16:54
Prinzipiell sieht das Programm ganz gut aus. Aber ein paar Anmerkungen hätte ich da noch:
- Die while-Schleife über das Handle funktioniert nicht, weil der Befehl Code: (dl
)
$_=shift(@_); - Wenn du die Lösung wählst, bei der die Liste gleich komplett eingelesen wird, dann kannst du die Eingabedatei auch nach der Zuweisung wieder schließen. Es ist generell eine sinnvolle Sache, den Geltungsbereich aller Datenobjekte möglichst klein zu halten, das minimiert Fehlerquellen. - Du solltest die Datei besser mit Fehlerüberprüfung öffnen, also zum Beispiel so: Code: (dl
)
open LISTE, "list.txt" or die "Fehler beim Öffnen der Eingabedatei: $!\n"; Code: (dl
)
1 my @lines; Das verschmutzt nicht den globalen Namensraum mit einem Filehandle LISTE, schließt die Datei automatisch am Ende des geschweift geklammerten Blockes und es ist -- im Hinblick darauf, dass man den Dateinamen vielleicht mal aus einer Variablen nehmen will -- sicherer als deine Variante durch die explizite Angabe des Dateizugriffsmodus '<' (nur lesen) in einem eigenen Parameter. - Der reguläre Ausdruck, den du verwendest um die Eingabezeilen auszuwerten, funktioniert, denke ich, nicht immer. Zum Beispiel kriegst du da Probleme, wenn eine Variable in deinen Eingabezeilen 'foo' heißt und jemand an der Kommandozeile angibt, dass nach 'o' gesucht werden soll. Dann erwischt dein regulärer Ausdruck immer auch 'foo'... Lies dir am besten mal perlrequick und/oder perlretut durch um einen Überblick über reguläre Ausdrücke zu bekommen ;-) When C++ is your hammer, every problem looks like your thumb.
|