Perl ist eine sehr leistungsfähige Textdatenverarbeitungssprache.
In Perl können Sie Format verwenden, um eine Vorlage zu definieren, und dann Write verwenden, um Daten gemäß der angegebenen Vorlage auszugeben.
Die Syntax der Perl-Formatierungsdefinition lautet wie folgt:
format FormatName =fieldlinevalue_one, value_two, value_ threefieldlinevalue_one, value_two.
Parameteranalyse:
FormatName : Formatierter Name.
fieldline : Eine Formatzeile, die zum Definieren des Formats einer Ausgabezeile verwendet wird, mit Zeichen wie @,^,,|.
value_one, value_two... : Datenzeilen, die zum Einfügen von Werten in die vorherigen Formatzeilen verwendet werden, sind allesamt Perl-Variablen.
. : Endesymbol.
Das Folgende ist ein einfaches Formatierungsbeispiel:
Das Ausgabeergebnis der Ausführung des obigen Beispiels ist:
Erstens: Google, Zweitens: Codercto, Drittens: Taoba
Formatzeilen beginnen mit @ oder ^, und in diesen Zeilen wird keine Variablenersetzung durchgeführt.
@-Felder (nicht zu verwechseln mit dem Array-Symbol @) sind gewöhnliche Felder.
Die Länge von <, >,| nach @,^ bestimmt die Länge des Feldes. Wenn die Variable die definierte Länge überschreitet, wird sie abgeschnitten.
<, >,| stehen auch für die linke Ausrichtung, die rechte Ausrichtung bzw. die mittlere Ausrichtung.
Das ^-Feld wird zum Auffüllen mehrzeiliger Textblöcke verwendet.
Das Format des Wertebereichs ist in der folgenden Tabelle dargestellt:
| Format | Bedeutung des Wertebereichs |
|---|---|
| @<<< | linksbündige Ausgabe |
| @>>> | Rechtsbündige Ausgabe |
| @||| | Mittenausgerichtete Ausgabe |
| @##.## | Zahl mit fester Genauigkeit |
| @* | mehrzeiliger Text |
Das erste Zeichen jedes Wertfeldes ist das Zeilenfüllzeichen. Bei Verwendung des @-Zeichens erfolgt keine Textformatierung.
In der obigen Tabelle entspricht die Feldbreite mit Ausnahme des mehrzeiligen Wertfelds @* der angegebenen Anzahl von Zeichen einschließlich des Zeichens @, zum Beispiel:
@###.##
Es bedeutet sieben Zeichen breit, vier vor dem Dezimalpunkt und zwei nach dem Dezimalpunkt.
Beispiele sind wie folgt:
Das Ausgabeergebnis des obigen Beispiels ist:
=================================Ali 20 2000.00============ =============================================== ========Codercto 30 2500,00=============================================== = =====================Jaffer 40 4000,00========================= = =========
$~ ($FORMAT_NAME): Formatname $^ ($FORMAT_TOP_NAME): Der aktuelle Header-Formatname wird in gespeichert
$% ($FORMAT_PAGE_NUMBER): aktuelle Ausgabeseitennummer
$= ($FORMAT_LINES_PER_PAGE) : Anzahl der Zeilen auf jeder Seite
$|. ($FORMAT_AUTOFLUSH): Ob der Ausgabepufferspeicher automatisch aktualisiert werden soll
$^L ($FORMAT_FORMFEED): Die Zeichenfolge, die ausgegeben werden muss, bevor der Header jeder Seite (außer der ersten Seite) gespeichert wird
Das Folgende ist ein Beispiel für eine einfache Formatierung mit $~:
Das Ausgabeergebnis der Ausführung des obigen Beispiels ist:
=============================== Text # Coder Tutorial============ = ============================================== = === Text # Coder-Tutorial=================================
Wenn $~ nicht angegeben ist, wird ein Format namens STDOUT ausgegeben:
Das Ausgabeergebnis der Ausführung des obigen Beispiels ist:
----------------STDOUT-Format----------------
Im folgenden Beispiel demonstrieren wir die Verwendung von $^- oder $FORMAT_TOP_NAME-Variablen durch Hinzufügen von Berichtskopfinformationen:
Das Ausgabeergebnis des obigen Beispiels ist:
=================================Name Alter============= = ============================================== = =======Ali 20 2000,00====================================== === =============================Codercto 30 2500,00=============================================== = =====================Jaffer 40 4000,00========================= = =========
Wir können auch $% oder $FORMAT_PAGE_NUMBER verwenden, um die Paginierung für den Bericht festzulegen:
Das Ausgabeergebnis des obigen Beispiels ist:
================================== Name Alter Seite 1=========== = ============================================== = =========Ali 20 2000,00==================================== === ==============================Codercto 30 2500,00=============================================== = =====================Jaffer 40 4000,00========================= = =========
Standardmäßig gibt die Schreibfunktion die Ergebnisse in die Standardausgabedatei STDOUT aus, wir können sie jedoch auch in eine beliebige andere Datei ausgeben lassen. Der einfachste Weg besteht darin, die Dateivariable als Parameter zum Schreiben zu übergeben, z. B.:
write(MYFILE);
Der obige Code schreibt Ausgaben in die Datei MYFILE unter Verwendung des Standarddruckformats namens MYFILE.
Dann können Sie die Variable $~ jedoch nicht verwenden, um das verwendete Druckformat zu ändern. Die Systemvariable $~ wirkt sich nur auf die Standarddateivariable aus, wir können $~ ändern und dann write aufrufen.
Nach erfolgreicher Ausführung können wir den Inhalt der tmp-Datei wie folgt anzeigen:
$ cat tmp ================================ Eingabe in Datei========== = ======================
Wenn wir select verwenden können, um die Standarddateivariable zu ändern, wird die interne Darstellung der aktuellen Standarddateivariablen zurückgegeben, sodass wir Unterprogramme und Ausgaben nach unseren eigenen Vorstellungen erstellen können, ohne andere Teile des Programms zu beeinträchtigen.
Nach erfolgreicher Ausführung können wir den Inhalt der tmp-Datei wie folgt anzeigen:
$ cat tmp ================================ Eingabe in Datei========== = ============================================== = ===== Eingabe in Datei im definierten Format ==================================