form-Funktion nutzen
Eine Alternative bietet für Perl 5 das Modul Perl6::Form, um Berichtstemplates mit fester Weite von Feldern zu erstellen, die mit Werten gefüllt werden. Dieses Modul gehört nicht zur Standardbibliothek von Perl 5 und muss voraussichtlich auf Ihrem System nachinstalliert werden. Sollten Sie mit dem Nachinstallieren nicht vertraut sein, so können Sie es in der Broschüre im untergeordneten Kapitel Zusätzliche Module installieren des Kapitels Pakete nachlesen.
Die Funktion form des Moduls Perl6::Form erhält als Argumente die Zeilen mit festem Text oder Platzhaltern. Platzhalter sind in geschweifte Klammern eingeschlossene Felder. Zeilen mit Platzhaltern müssen Zeilen mit korrespondierenden Werten folgen, welche in die Platzhalter gesteckt werden. Die Funktion liefert die Zeilen mit den interpolierten Werten zurück. Beispiel:
use Perl6::Form; $was = "VW Lupo"; $Preis = 11000; $wer = "Fa. Pannegroß"; $text = <<'EOF'; Lupo 3l Tdi, Diesel, Automatik, 45kW, Baujahr 1/02, Erstzulassung 5/02, 32 tkm, siber, Radio/CD, 2x Airb., Alarm, Alu, ele. Fensterheber, ESP, Klima, Sitzheizung, ZV mit Fernbedienung, Mp3 Radio - Top Fußmatten und Kofferraumverkleidung, Nebelscheinwerfer, 2/3 Türen EOF print form "+-----------------+-------------+-------------------+", "| Model | Preis | Anbieter |", "| {<<<<<<<<<<<<<} | {|||||||||} | {>>>>>>>>>>>>>>>} |", $was, $Preis, $wer, "+-----------------+-------------+-------------------+", "| Beschreibung |", "+---------------------------------------------------+", "| {[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[} |", $text, "+---------------------------------------------------+";
Ausgabe des Programms:
+-----------------+-------------+-------------------+ | Model | Preis | Anbieter | | VW Lupo | 11000 | Fa. Pannegroß | +-----------------+-------------+-------------------+ | Beschreibung | +---------------------------------------------------+ | Lupo 3l Tdi, Diesel, Automatik, 45kW, Baujahr | | 1/02, Erstzulassung 5/02, 32 tkm, siber, | | Radio/CD, 2x Airb., Alarm, Alu, ele. | | Fensterheber, ESP, Klima, Sitzheizung, ZV mit | | Fernbedienung, Mp3 Radio - Top Fußmatten und | | Kofferraumverkleidung, Nebelscheinwerfer, 2/3 | | Türen | +---------------------------------------------------+
Das Beispiel enthält drei einzeilige Felder und ein Blockfeld (Füllfeld). Eine in geschweiften Klammern stehende Folge der Zeichen [ steht für ein links ausgerichtetes Blockfeld. Es spezifiziert, die geschweiften Klammern mitgerechnet, die Breite des Spaltenbereichs. Ein Blockfeld stellt den korrespondierenden Feldwert über so viele Zeilen dar, wie nötig sind, um den ganzen Feldwert im Spaltenbereich unterzubringen.
Folgende Zeichen kennzeichnen verschiedene Arten von einzeiligen Feldern: <, >, |, '
Einzeilige Felder
Feldart |
Feldzeichen |
---|---|
links ausgerichtet |
{<<<<<<<<<<} |
rechts ausgerichtet |
{>>>>>>>>>>} |
zentriert |
{||||||||||} |
wortwörtliche Wiedergabe |
{''''''''''} |
Abhängigkeiten
Für das Modul Perl6::Form sind erforderlich:
mindestens Perl 5.8.0, Perl6::Export, Scalar::Util, List::Util
Weitere Dokumentation
> perldoc Perl6::Form