Mit dem Befehl chr() kann man ein Zeichen anhand seines ASCII-Codes ausgeben. Allerdings sind zum großen Teil nur Zeichen > 32 darstellbar, da die darunter liegenden Zeichen meist als Steuerzeichen verwendet werden.
Oft steht man vor dem Problem, daß man aus einem bestimmten Ordner alle Dateien eines bestimmten Typs suchen muß. Natürlich ging auch mir das schon öfters so, also hab ich mir eine kleine Funktion gestrickt, die mir alle Dateien zurückgibt.
sub alle_dateien{ # Parameter 1: Ordnername, relativ zum Script # Parameter 2: Endung ohne . # gibt alle Dateien als Array zurück (unsortiert) # $endung = leer : Alle Dateien zurückgeben
my $ordner=shift; my $endung=shift; die "Kein Ordner angegeben" if ($ordner eq '');
if ($endung ne ''){ $endung=~ s/^\.//; $endung='\.'.$endung; } local *in;
opendir (in,"$ordner") || die "Can not open directory $ordner: $!";
$salt stellt einen Skalar dar, der mindestens aus 2 Zeichen bestehen sollte. Mit diesem Skalar wird die Originalzeichenkette verschlüsselt. Weiterlesen...
Manchmal möchte man in regulären Ausdrücken eine Oder-Suche durchführen. Dies wird ermöglicht durch den |-Operator im Suchteil des regulären Ausdruckes.
Beispiel:
my $t="test"; if ($t=~ /haus|test|maus/){print "gefunden $&";} else {print "nicht gefunden";}
Dateien öffnen als Sicherheitsrisiko... tja, kann man denken, was soll da schon großartig passieren.
Aber Vorsicht, ein unsauberes Programm wie das Folgende kann es unliebsamen Zeitgenossen ermöglichen, Zugriff auf Ihren Server zu erlangen.
... #Hier werden Parameter eingelesen, die Ihre Webseitenbesucher eingeben können, unter anderem auch den Parameter $datei open (in,"<daten/$datei.txt"); print <in>; close in;
Im Gegensatz zu chop() entfernt chomp() nur dann das letzte Zeichen eines Skalars (Strings) oder Arrays (Liste), wenn dieses Zeichen gleich dem Zeichen ist, das in $/ gesetzt ist.Hört sich jetzt etwas verquert an, also im Klartext: In $/ ist das Zeichen enthalten, das als INPUT_RECORD_SEPARATOR bekannt ist. Normalerweise ist das das \n bzw. der Zeilenumbruch. Und jetzt kommt man der Sache schon näher: Es wird, wenn vorhanden, jeder Zeilenumbruch am Ende eines Skalars oder eines Arrayelements gelöscht.
Also, wie man Dateien mit Perl öffnet ist ja hoffentlich klar geworden, wenn nicht, kann man es hier nachlesen.Allerdings hatte die Geschichte einen kleinen Schönheitsfehler: Wenn es die Datei nicht gibt, wird in keinster Weise mit einer Fehlermeldung reagiert. Manchmal ist es ja auch nicht so wichtig, daß eine Fehlermeldung erscheint, manchmal jedoch ist es "lebenswichtig" für die Funktion des Programmes. Perl unterbricht nicht, wie andere Programmiersprachen, von sich aus die Ausführung des Scriptes, wenn eine Datei sich nicht öffnen läßt!
Jeder kommt ja mal an den Punkt, an dem er einen Kalender verarbeiten muß. Natürlich wäre es wünschenswert, wenn nicht nur die Tage den Wochentagen zugewiesen werden, sondern wenn auch bekannt wäre, ob ein Tag ein Feiertag ist. Ich habe da schon vor Jahren einmal ein Script geschrieben, das diese Arbeit erledigt. Aus aktuellem Anlaß hab ich es mal aktualisiert und umgeschrieben.
Hintergrund Interessanterweise richten sich alle religiösen Feiertage nach Ostersonntag, so ist Pfingsten immer 49 Tage nach Ostersonntag, Rosenmontag ist immer 48 Tage vor Ostersonntag. Weiterlesen...