Thema Perl Mittwoch, 21.2.2007, 21:49:33 Uhr
Dateien öffnen - Sicherheitsrisiko von Benutzereingaben 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;
|
Weiterlesen...
Mittwoch, 21.2.2007, 13:40:30 Uhr
chomp() in Perl 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.
Beispiel:
Weiterlesen...
Mittwoch, 21.2.2007, 13:11:12 Uhr
chop() in Perl - Letztes Zeichen eines Skalars oder Arrays entfernen Der Befehl chop() entfernt das letzte Zeichen eines Skalars oder eines Arrays. Beispiel:
$t="Hansi"; $weg=chop($t); print "Neu: $t\nAbgeschnitten: $weg";
|
Ausgabe: Neu: Hans Weiterlesen...
Montag, 19.2.2007, 23:08:56 Uhr
Dateien öffnen mit Fehlerabfrage 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!
Weiterlesen...
Montag, 19.2.2007, 21:31:11 Uhr
Feiertage eines beliebigen Jahres errechnen mit Perl Hier mal etwas aus der Praxis:
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...
Montag, 19.2.2007, 08:50:42 Uhr
split() - Zeichenketten zerlegen in Perl Der Befehl split() ist eine mächige Funktion, mit der man Skalare in Arrays zerlegen kann.
Syntax: @array=split(/$trennungszeichen/,$skalar);
Weiterlesen...
Montag, 19.2.2007, 08:33:52 Uhr
Nochmal Reverse - Diesmal für Zeichenketten Reverse für Arrays kennt man ja schon - die Reihenfolge der Elemente wird von hinten nach vorne getauscht. Reverse gibts aber auch für Skalare, oder Strings, wie manche Zeichenketten auch nennen.
Syntax: $neu=reverse($alt); Weiterlesen...
Sonntag, 18.2.2007, 15:10:21 Uhr
Groß-Kleinschreibung in Regular Expression ändern Folgendes Beispiel ist für mich mehr eine "Spielerei", aber immerhin interessant genug, sie zu beschreiben.
Also, die Aufgabenstellung wäre angenommener Weise:
Wandle Weiterlesen...
Samstag, 17.2.2007, 19:45:21 Uhr
Datei einlesen in Perl Eine Textdatei kann man folgendermaßen komplett einlesen, also in einem Rutsch:
open (in,"<$dateiname"); @datei= <in>; close in;
|
Der Inhalt der Datei wird im Array @datei eingelesen und steht dort zur Verfügung. Jede Textzeile, getrennt durch einen Zeilenumbruch (Enter, Eingabe, \n, oder wie man es nennen mag) ist ein Element.
Weiterlesen...
Freitag, 16.2.2007, 12:35:15 Uhr
Gruppenbildung - Zeichenkolonnen mehrfach suchen mit Perl Wie Sie hier gesehen haben, wirkte eine entsprechende Anweisung zur Mehrfachsuche immer nur auf das zu letzt stehende Zeichen, etwa $t=~ /a{2,3}/; sucht zwei oder dreimal das a. Was aber nun, wenn längere Zeichenketten wiederholt gesucht werden sollen?
Dafür gibt die Klammer ( und ); Weiterlesen...
|