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.
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.
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?
Wie Sie vorher gesehen haben, können Wiederholungen von Zeichen ermittelt werden, indem man die Zeichen in Klammern setzt.Diese Klammerung hat aber auch noch einen anderen Effekt: Die gefundenen Zeichen werden bestimmten Variablen zugewiesen! Diese Zuweisung ist eine sehr hilfreiche Einrichtung von Perl, wie Sie gleich sehen werden:
Perl ist ja, wie Sie bekanntermaßen jetzt wissen, gierig. Es werden also immer die längsten möglichen Ergebnisse verwendet. Dies hat ja oftmals Vorteile, was aber, wenn man die kürzeste Variante braucht? Natürlich geht das auch, wäre auch blöd wenn nicht...
Um die kürzeste Variante einer Entsprechung eines regulären Ausdruckes zu finden, wird das ?-Zeichen verwendet. Am Besten, ich bringe gleich ein Beispiel:
Eine besondere Flexibilität erhalten Reguläre Ausdrücke durch die Möglichkeit, nach mehrfachem Auftreten von Zeichen zu suchen. Erreicht wird dies durch die Angabe der Anzahl in geschweiften Klammern { und }. Die Angabe {2,5} bedeutet, daß das Zeichen 2-5 mal enthalten sein muß.
Der Befehl substr, der eine Abkürzung des englischen Wortes Substring ist, liefert Teile eine Strings, oder Skalars, wie es in Perl heißt, zurück. Der Syntax ist $teil=substr($original,startpos,anzahlzeichen,ersetzungszeichen);