Hi hi!
Gibt es elegantere Möglichkeiten an die Fehler heranzukommen?
Da fallen mir auf Anhieb zwei ein, zumindest unter Windows NT (nicht Win9x!). Einen hat Rolf schon angedeutet, nur falsch ausgefuehrt (dazu unten), der andere ist, einfach Deine Konsole so einzustellen, dass sie Dir eine Zeilenanzahl zeigt, mit der man auch arbeiten kann. Dazu in die Systemsteuerung, dort Console (heisst vermutlich Eingabeaufforderung in der dt. Version) aufmachen, dort bei Layout die Window size und Screen buffer size einstellen (Begriffe bitte jeweils in die Sprache Deiner Win-Version uebersetzen). Ich habe z.B. bei Window size 40 Zeilen eingetragen (so gross ist dann das Fenster), bei Screen buffer size aber 800 Zeilen (soviel wird gespeichert), mit dem Effekt, dass ich VIEL scrollen kann. :-)
Man kann dort uebrigens auch Farben einstellen, die im Auge nicht ganz so weh tun, z.B. mit weisser Schrift (statt grau). ;-)
perl -cw meinscript.plx > datei
perl -w script | more
(Ob folgendes auch fuer Win9x gilt, weiss ich nicht, vermutlich aber nicht.)
Der Ansatz ist richtig, aber so stimmt das nicht. Die Ausgabe eines Consolenprogramms teilt sich in zwei verschiedene Kanaele, naemlich STDOUT und STDERR. Ersteres ist fuer normale Ausgaben des Programms gedacht, zweiteres fuer Warnungen und Fehlermeldungen. Dieses aus der Unixwelt stammende Konzept wird von Perl konsequent umgesetzt, und - zum Glueck - von NT unterstuetzt.
Normalerweise sind STDOUT und STDERR auf die Konsole gerichtet (dieses unbunte Fenster). Mit den Ausgabeumlenkungsoperatoren kann man die aber wo anders hinrichten. Dabei bedeutet
1> output.txt STDOUT nach output.txt umleiten, evtl. existierende Datei ueberschreiben
2> errors.txt STDERR nach errors.txt umleiten, evtl. existierende Datei ueberschreiben
> output.txt gleichbedeutend mit 1>
1>>, 2>> wie 1> und 2>, aber bei existierender Datei nicht ueberschreiben, sondern anhaengen
>> wie 1>>
< input.txt Eingabe (STDIN) aus der Datei input.txt holen statt von der Tastatur
| STDOUT eines Programms als STDIN fuer zweites Programm verwenden
Rolf, folgendes war bei Dir falsch: Mit
perl -cw meinscript.plx > datei
leitest Du STDOUT in die Datei um, nicht aber die Fehlermeldungen, die Perl auf STDERR ausgibt und deswegen weiterhin in der Konsole erscheinen. Richtig waere
perl -cw meinscript.plx 2> errors.txt
Bei
perl -w script | more
begehst Du denselben Fehler: Nur STDOUT wird an more weitergeleitet, nicht STDERR. Deshalb werden die Fehlermeldungen *nicht* seitenweise angezeigt.
Allgemein laesst sich sagen, ein bisschen Wissen ueber seine grundlegenden Werkzeuge des Betriebssystems ist immer wieder enorm hilfreich. Leider wird in der heutigen Zeit immer alles moeglichst bunt gemacht und vor dem User versteckt, weshalb jemand, der noch nie mit Unix oder frueher mit MS-DOS gearbeitet hat, sowas einfach nicht mehr lernt.
So long