NAME
Quiq::LineProcessor - Verarbeite Datei als Array von Zeilen
BASE CLASS
DESCRIPTION
Ein Objekt der Klasse repräsentiert eine Datei als ein Array von Zeilen. Die Zeilen sind ihrerseits Objekte (per Default Objekte der Klasse Quiq::LineProcessor::Line). Die Klasse stellt Methoden zur Manipulation des Arrays von Zeilen zur Verfügung.
Fehlerbehandlung
Für eine Fehlerbehandlung können die Methoden $par->input() und $line->number() genutzt werden:
$class->throw(
'SDOC-00001: K\{} and k\{} are not supported anymore',
Input => ''.$par->input,
Line => $line->number,
);
produziert (z.B.)
Exception:
SDOC-00001: K{} and k{} is not supported anymore
Input:
/tmp/test.sdoc
Line:
20
Stacktrace:
...
METHODS
Konstruktor
new() - Instantiiere Textdatei-Objekt
Synopsis
$par = $class->new($file,@opt);
$par = $class->new(\$str,@opt);
$par = $class->new(\@lines,@opt);
Options
- -lineClass => $class (Default: 'Quiq::LineProcessor::Line')
-
Klasse, auf die die Zeilen des Dokuments geblesst werden.
- -lineContinuation => $type (Default: undef)
-
Art der Zeilenfortsetzung. Mögliche Werte:
- undef
-
Keine Zeilenfortsetzung.
- 'backslash'
-
Endet eine Zeile mit einem Backslash, entferne Whitespace am Anfang der Folgezeile und füge den Rest zur Zeile hinzu.
Dies kann für eine Zeile unterdrückt werden, indem der Backslash am Ende der Zeile durch einen davorgestellten Backslash maskiert wird. In dem Fall wird statt einer Fortsetzung der Zeile der maskierende Backslash entfernt.
- 'whitespace'
-
Beginnt eine Zeile mit einem oder mehreren Leerzeichen oder TABs, wird sie zur vorhergehenden Zeile hinzugefügt. Die Leerzeichen und TABs am Zeilenanfang werden entfernt. Die Teile werden mit \n als Trenner zusammengefügt.
- -skip => $regex (Default: undef)
-
Überlies Zeilen, die Regex $regex erfüllen.
Description
Instantiiere ein Dokument-Objekt aus Datei $file, aus Text $text oder aus den Zeilen @lines und liefere eine Referenz auf dieses Objekt zurück.
Akzessoren
input() - Bezeichnung Eingabequelle
Synopsis
$input = $par->input;
Description
Liefere die Bezeichnung der Eingabequelle. Dies kann ein Dateiname oder eine stringifizierte String- oder Arrayreferenz sein.
lineClass() - Zeilen-Klasse
Synopsis
$lineClass = $par->lineClass;
Description
Liefere die Zeilen-Klasse.
lines() - Liste der Zeilen
Synopsis
@lines | $lineA = $par->lines(\@lines);
Description
Liefere die Liste der Zeilen der Datei. Im Skalarkontext liefere eine Referenz auf die Liste.
Operationen
shiftLine() - Entferne und liefere erste Zeile
Synopsis
$line = $par->shiftLine;
Description
Entferne die erste Zeile aus dem Dokument und liefere diese zurück.
shiftLineIfEq() - Entferne erste Zeile, wenn bestimmter Inhalt
Synopsis
$line = $par->shiftLineIfEq($str);
Description
Entferne die erste Zeile aus dem Dokument und liefere diese zurück, sofern ihr Inhalt eq $str ist.
removeEmptyLines() - Entferne Leerzeilen am Anfang
Synopsis
$par->removeEmptyLines;
Description
Entferne Leerzeilen am Anfang. Die Methode liefert keinen Wert zurück.
Externe Repräsentation
dump() - Erzeuge externe Repräsentation
Synopsis
$str = $par->dump($format);
$str = $par->dump;
Description
Erzeuge eine externe Dokumentrepräsentation in Format $format für das gesamte Dokument und liefere diese zurück.
Formate
Siehe $ln->dump()
VERSION
1.217
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2024 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.