Hallo Calocybe,
1. Variablendeklaration
Offensichtlich haelt Perl nichts davon, Variablen zu deklarieren, bevor man sie
benutzen kann. Ich halte das fuer sehr gefaehrlich (aus Erfahrung), man stelle sich
nur folgendes Konstrukt vor:$LangerKomplizierterVariablenName = 0;
while ($LangerKomplizierterVariablenName < 10) {
# Hier machen wir ganz
# viele, tolle Sachen
LangerKomplizirterVariablenName ++; # man beachte die Schreibweise von Komplizirt
# und noch mehr Sachen
}Wie dieses Beispiel zeigt, besteht ein grosse Gefahr, dass man sich durch simples
Verschreiben eine Endlosschleife einhandelt. Selbst Microsoft hat das erkannt
(traut man denen ja gar nicht zu) und bietet in Visual Basic die Moeglichkeit, die
Zeile "Option Explicit" am Anfang eines Code-Modul einzufuegen, woraufhin die
fehlende Deklaration einer Variablen zu einer Fehlermeldung fuehrt. Also gibt
es da in Perl irgendeine Moeglichkeit, solche simplen Fehler erkenn zu lassen?
Neben dem "-w"-Schalter kannst Du auch noch das Modul strict.pm verwenden. Dieses Modul zwingt Dich, wenn es in seiner reinen Form aufgerufen wird, unter anderem zu Variablendeklarationen und Quoting. Du kannst also selbst entscheiden, wie sehr Du Dich an bestimmte Konventionen fesseln willst. Eingebunden wird es wie in Perl ueblich mit "use". Naehere Informationen siehe Perlmod oder strict.html (bei ActivePerl). Zumindest fuer Win32 liegt strict.pm nach der Installation direkt im Rootverzeichnis von lib.
z.B.:
###############Dateianfang######################
#!/usr/perl/bin #je nach System)
use cgi qw(:standard); #z.B. CGI-Modul laden)
use strict; #Strict-Modul laden
my(
$LangerkomplizierterVariablennamen,
$AndererVariablenname
);
#######Hier geht es dann los#################
Uebrigens kann man auch manche Bloecke im Code dann wieder mit "no strict qw(...); befreien, wenn an einer Stelle die Restrictionen zu sehr stoeren.
Quellen u.a.:
-PC-Magazin Spezial 7/98 Thema Perl5 (Sehr gut),
-Das Gecko-Book für Win32 von O'Reilly (Sehr gut, wenn Perl unter Win32 verwendet werden soll)
Viel Spass noch, Perl macht suechtig!
Michael