Seiten-Inhalt

Besonderheiten mit Perl - unter Windows

Oberfläche

Der üblichen Windows-Philosophie folgend war auch meine erste Umgebung eine GUI (Klick-Entwicklungsumgebung (Graphical User Interface)). Hier habe ich anfangs den DzSoft Perl Editor eingesetzt. Dieser ist in der eingeschränkten Shareware-Version allerdings nur in der Lage die ersten 120 Zeilen eines Scriptes zu bearbeiten. Dies hat die ersten Wochen für die ersten Progrämmchen vollkommen ausgereicht und die recht unkomplizierte Möglichkeit 'mal schnell' ein Script zu testen (durch ein Tastaturkürzel wurd das Script gestartet und dessen Ausgabe ich einem Unterfenster angezeigt) war sehr hilfreich. "use Perl;" Als es dann daran ging die ersten längeren Scripte zu entwickeln, störte diese Einschränkung nun doch. Ich besann mich auf alte Linux-Zeiten und guckte nach der Windows Version von Emacs: Dieser hat allerdings nicht die übliche 'Klick-Oberfläche', aber wenn man sich daran gewöhnt hat, so kann man sehr schnell damit arbeiten (Warnung: es ist doch eine etwas längere Gewöhnungsphase - aber die Einarbeitung lohnt). Nun schreibe ich meine Scripte in Emacs und starte sie von der CMD-Windows-Eingabe (dabei kann eine Registry-Umstellung sehr hilfreich sein) oder CGI-Scripte via Apache und Internet-Browser (z.B. Opera,...). Noch einfacher kann man - wenn man auf die Kommandozeile angewiesen ist - arbeiten, wenn man sich das CYGWIN-Toolkit installiert: dieses bietet die unter Unix/Linux übelichen Kommandozeilen (shells), sowie auch viele andere nützliche Unix-Tools... - später mehr dazu...

Es soll (und kann) hier nicht DIE Hilfe für Perl unter Windows entstehen - vielleicht ja doch? Ich hoffe allerdings, mit dieser deutschen Hilfeseite einigen Perl-Entwicklern weiterhelfen zu können ((Perl-)Programmierer dürfen sich allerdings nicht vor der englischen Sprache scheuen, da eigentlich alle Dokumentationen und Hilfen im Internet selten in Deutsch zu finden sind).
Diese Seiten wurden mit der grösstmöglichen Sorgfalt entwickelt, es ist allerding leider nicht auszuschliessen, dass sich Fehler eingeschlichen haben. Ich bin jedem Besucher dankbar, der mir einen gefundenen Fehler mitteilt. Daher lehne ich natürlich auch jede Verantwortung ab, die zu Problemen führen, die bei dem beschriebenen Vorgehen entstehen könnten. Gerade änderungen in der Windows Registrierungsdatenbank sollten nur erfahrene Benutzer vornehmen, die sich vorstellen können, was bei einer beschriebenen änderung passiert.


Perl und die Kommandozeile (unter Windows)

Unter Windows ist es in der Regel unüblich, mit der Kommandozeile zu arbeiten. Obwohl auch einige wichtige Systemadministrationstools über die Kommandozeile gesteuert werden, ist das Arbeiten mit dem "DOS-Fenster" eher "eine Belastung". Es gibt allerdings einige Einstellungen, die man in der Registry vornehmen kann, die die Arbeit sehr erleichtern können.

Vervollständigung von Verzeichnisnamen und Dateinamen

Benutzer, die schon mal unter Linux gearbeitet haben (oder jemanden kennen), haben vielleicht schon von der Möglichkeit gehört, durch Betätigung der <TAB>- oder <Strg-D>-Taste(nkombination) einen Datei- oder Verzeichnisnamen vom System vervollständigen zu lassen. Da häufig über die ersten paar Buchstaben die Datei eindeutig zuzuordnen ist, reicht es, diese zu tippen und dann mit der Tabulator-Taste den Rest ergänzen zu lassen.
Diese Funktion gibt es auch unter Windows. Sie ist allerdings in der Standardinstallation nicht aktiviert (aus welchen politischen Gründen Microsoft dies auch tun mag?). Wie so häufig, ist es ein Schlüssel in der Registry, der einen anderen Wert erhalten muss - und schon ist die Vervollständigung aktiviert. Man setze also (unter Windows 2000) den Schlüssel

HKEY_CURRENT_USER/Software/Microsoft/Command Processor/CompletionChar

auf den Wert 9. Wem der Umgang mit dem Registry-Editor Sorge bereitet, der kann auch hier eine .reg-Datei herunterladen, die durch Doppelklick den Eintrag in der Regitsry vornimmt.

Da ich derzeit keinen Zugriff auf ein anderes System habe, weiß ich nicht, ob dieser Schlüssel so auch unter z.B. Windows 98 existiert. Es dürfte ausreichen nach 'CompletionChar' zu suchen und den Wert entsprechend anzupassen.

(Reichen die ersten Buchstaben noch nicht aus, die Datei/Verzeichnis eindeutig zu spezifizieren, so schlägt nach der ersten Betätigung der <TAB>-Taste das System den ersten passenden Eintrag vor. Wiederholte Betätigung der <TAB>-Taste bringt den nächsten passenden Eintrag.)

Umlaute in der Kommandozeile von Windows

Wer irgendwann einmal die "DOS-Eingabeaufforderung" unter Windows geöffnet hat und damit ein wenig gearbeitet hat, dem wird in Deutschland aufgefallen sein, dass die Darstellung von Zeichen, die der amerikanische / englische Zeichensatz nicht kennt (z.B. ä, ö, ü, ß, etc.) nicht funktioniert. Statt dessen werden ASCII-Sonderzeichen dargestellt (teilweise interessante grafische Zeichen :-). Dies liegt daran, dass für Deutschland nicht die richtige deutsche Codepage eingestellt ist. Warum Microsoft nicht bei der Installation auch für die Eingabeaufforderung die Ländereinstellungen vornimmt bleibt auch hier ungeklärt...

Nun - auch hier ist es wieder eine Registry-Einstellung, die das Problem lösen kann:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\...
...CodePage\OEMCP [ = 1252] HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\...
...CodePage\OELHAL [ = vga850.fon] HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\...
...CurrentVersion\WOW\boot\oemfonst.fon [ = vga850.fon]

(Da die Darstellung der langen Registry-Schlüssel in HTML Probleme verursachte, sind die drei Zeilen jeweils in zwei Zeilen aufgesplittet. Die in den eckigen Klammern angegebenen Werte sind die Werte, die für den jeweiligen Schlüssel eingestellt werden müssen.)

Wer nur für die derzeitige 'Sitzung' die deutsche Codepage einstellen möchte, so sollte es reichen zu Beginn den Befehl

chcp 1252

(Change Codepage) auszuführen. Des weiteren muss noch über das Eigenschaftenmenue die Schriftart auf "Lucida Console" eingestellt werden, da der Rasterzeichensatz nicht weiß, wie ein 'ä' aussieht.

Kommandozeile in best. Verzeichnis öffnen

Um aus dem Exporer heraus eine Kommandozeilen-Eingabeaufforderung dirtekt in dem aktuellen Verzeichnis zu öffen, reicht ein Eintrag in der Registry:

HKEY_CLASSES_ROOT\Folder\shell\MenuText\Command

dort den Wert von "(Standard)" auf "C:\WINNT\system32\cmd.exe /k cd "%1" setzen (funktioniert so unter Windoofs 2000).

Kontextmenü um globalen Eintrag für beliebten Editor der Wahl erweitern

Um das Koontextmenü des Windows-Explorere global zu erweitern, sobald man mit dem Mauszeiger auf eine Datei "zeigt", kann man folgende Einträg vornehmen:

HKEY_CLASSES_ROOT\*\shell\MenuText\(Standard) = "mit Emacs öffnen"
HKEY_CLASSES_ROOT\*\shell\MenuText\Command\(Standard) = "C:/Progamme/...editoraufruf..."

Ich habe für den Editoraufruf "C:\Programme\emacs-21.3\bin\runemacs.exe "%1"" eingetragen. So erweitert sich das Kontextmenü um einen Eintrag, der die gewählte Datei direkt mit dem Editor öffnet.


CYGWIN - die "etwas andere Kommandozeile"

Unix/Linux ist (immer noch) ein sehr auf die Kommandozeile (shell) ausgerichtetes System. Es gibt - im Gegensatz zu Windows - mehrere Shells, die verschiedene Funktionalitäten und sogar eine Art von Batch-Dateien (Shell-Scripte) bieten. Diese Shell-Scripte bieten die Möglichkeit sehr flexible Progrämmchen zu entwickeln, die die tägliche Arbeit häufig um einen großen Faktor erleichtern können.

Warum erzähle ich das alles?? Einen sehr großen Teil der oben erwähnten Punkte bietet das Tool CYGWIN. Es ist einerseits im Internet erhältlich - sowie auch als CD käuflich zu erwerben (es handelt sich dabei, wie bei Linux) um Freeware - nur die CD-Erstelungskosten werden bezahlt). Nach Installation von CYGWIN hat man eine auf die DOS-Kommandozeile aufbauende shell, die die Funktionalität der Linux-Kommandozeile (z.B. bash) bietet - es gibt sogar eine Version von perl - so müsstem an gar nicht mal auf die Version von ActiveState zurückgreifen...

Das Arbeiten mit der cygwin-shell steht in keinem Vergleich zu der Arbeit mit der Windoofs-Kommandozeile... :-)


Drucken
letzte Änderung: 26.Nov 2004

rechte Spalte

Felicitas-Fernsehservice

Ein E-Mail-Dienst, der Ihnen täglich eine Auswahl des TV-Programms zusendet, das anhand einer individuellen Suchwortliste erstellt wurde.
Klicken Sie hier.