Latest web development tutorials

Perl formatierte Ausgabe

Perl ist eine sehr leistungsfähige Textverarbeitung Sprachdaten.

Perl kann verwendet werden, um ein Vorlagenformat zu definieren, und dann durch die angegebenen Vorlage den Schreibdatenausgabe verwendet werden.

Perl-Format definiert Syntax lautet wie folgt:

format FormatName =
fieldline
value_one, value_two, value_three
fieldline
value_one, value_two
.

Analytische Parameter:

  • Formatname : Formatname.
  • Fieldline: ein Zeilenformat, das Format verwendet , um eine Ausgangsleitung, ähnlich dem @ zu definieren, ^, <,>, | solche Zeichen.
  • value_one, value_two ......: Reihen von Daten, verwendet , um Werte in die erste Reihe Format einfügen, werden alle Perl - Variablen.
  • : End - Symbol.

Im Folgenden wird ein einfaches Beispiel formatiert:

#!/usr/bin/perl

$text = "google w3big taobao";
format STDOUT =
first: ^<<<<<  # 左边对齐,字符长度为6
    $text
second: ^<<<<< # 左边对齐,字符长度为6
    $text
third: ^<<<< # 左边对齐,字符长度为5,taobao 最后一个 o 被截断
    $text  
.
write

Führen Sie das obige Beispiel Ausgabe lautet:

first: google
second: w3big
third: taoba

Format Zeile (Zeile grafisch) Syntax

  • Format Linien @ oder ^ am Anfang, diese Linien durchlaufen keine Form von Variablensubstitution.
  • @ Field (nicht mit dem Array Marker @ verwechseln) ist ein gewöhnlicher Feld.
  • @, <,>, ^ Nachdem die | Länge die Länge des Feldes bestimmt, ob die Variable, die die angegebene Länge überschreitet, wird es abgeschnitten.
  • <,>, | Auch repräsentieren, linksbündig, rechtsbündig, zentriert.
  • ^ Felder für Textblock Füllung mit mehreren Leitungen.

Format Bereich

Reihe von Formaten, wie folgt:

Format Bereich Bedeutung
@ <<< Linker Ausgang
@ >>> Rechtsbündige Ausgabe
@ ||| Richten Sie Ausgang
@ ##. ## Feste Präzision Nummer
@ * Mehrere Textzeilen

Das erste Zeichen jeder Zeile ist eine Reihe von Füllzeichen, wenn das Zeichen @ verwenden, nicht die Textformatierung.

In der obigen Tabelle, zusätzlich zu @ * Bereich Multi-line, Weitfeld gleich einer bestimmten Anzahl von Zeichen in dem Zeichen @, darunter zum Beispiel:

@###.##

Es stellt sieben Zeichen breit, nach vier vor dem Komma, das Komma zwei.

Beispiele sind wie folgt:

#!/usr/bin/perl

format EMPLOYEE =
===================================
@<<<<<<<<<<<<<<<<<<<<<< @<< 
$name $age
@#####.##
$salary
===================================
.

select(STDOUT);
$~ = EMPLOYEE;

@n = ("Ali", "w3big", "Jaffer");
@a  = (20,30, 40);
@s = (2000.00, 2500.00, 4000.000);

$i = 0;
foreach (@n){
	$name = $_;
	$age = $a[$i];
	$salary = $s[$i++];
	write;
}

Das obige Beispiel Ausgabe lautet:

===================================
Ali                     20
  2000.00
===================================
===================================
w3big                  30
  2500.00
===================================
===================================
Jaffer                  40
  4000.00
===================================

Variable Format

  • $ ~ ($ Format_name): Format Name $ ^ ($ FORMAT_TOP_NAME): Die aktuelle Formatnamen im Header gespeichert wird
  • $% ($ FORMAT_PAGE_NUMBER): die aktuelle Ausgabe Seitennummer
  • $ = ($ FORMAT_LINES_PER_PAGE): die Anzahl der Zeilen auf der Seite
  • $ | ($ FORMAT_AUTOFLUSH): ob automatisch die Ausgangspufferspeicher zu leeren
  • $ ^ L ($ FORMAT_FORMFEED): auf jeder Seite (außer der ersten Seite) Kopf erforderlich, bevor die Ausgabe-String gespeichert ist in

Im Folgenden ist eine einfache $ Instanz zu verwenden, - Format:

#!/usr/bin/perl

$~ = "MYFORMAT"; # 指定缺省文件变量下所使用的格式
write;           # 输出 $~ 所指定的格式

format MYFORMAT = # 定义格式 MYFORMAT 
=================================
      Text # 本教程
=================================
.
write; 

Führen Sie das obige Beispiel Ausgabe lautet:

=================================
      Text # 本教程
=================================
=================================
      Text # 本教程
=================================

Wenn Sie nicht die $ ~ unter dem Fall angeben, wird das Ausgabeformat STDOUT genannt:

#!/usr/bin/perl

write;         # 不指定$~的情况下会寻找名为STDOUT的格式

format STDOUT =
~用~号指定的文字不会被输出
----------------
  STDOUT格式
----------------
.

Führen Sie das obige Beispiel Ausgabe lautet:

----------------
  STDOUT格式
----------------

Das folgende Beispiel wir einen Bericht Header-Informationen hinzufügen, die $ ^ oder $ FORMAT_TOP_NAME Variablen zu demonstrieren:

#!/usr/bin/perl

format EMPLOYEE =
===================================
@<<<<<<<<<<<<<<<<<<<<<< @<< 
$name $age
@#####.##
$salary
===================================
.

format EMPLOYEE_TOP =
===================================
Name                    Age
===================================
.

select(STDOUT);
$~ = EMPLOYEE;
$^ = EMPLOYEE_TOP;

@n = ("Ali", "w3big", "Jaffer");
@a  = (20,30, 40);
@s = (2000.00, 2500.00, 4000.000);

$i = 0;
foreach (@n){
   $name = $_;
   $age = $a[$i];
   $salary = $s[$i++];
   write;
}

Das obige Beispiel Ausgabe lautet:

===================================
Name                    Age
===================================
===================================
Ali                     20
  2000.00
===================================
===================================
w3big                  30
  2500.00
===================================
===================================
Jaffer                  40
  4000.00
===================================

Wir können auch die $% oder $ FORMAT_PAGE_NUMBER Set Paginierung für den Bericht verwendet werden:

#!/usr/bin/perl

format EMPLOYEE =
===================================
@<<<<<<<<<<<<<<<<<<<<<< @<< 
$name $age
@#####.##
$salary
===================================
.

# 添加分页 $% 
format EMPLOYEE_TOP =
===================================
Name                    Age Page @<
                                 $%
=================================== 
.

select(STDOUT);
$~ = EMPLOYEE;
$^ = EMPLOYEE_TOP;

@n = ("Ali", "w3big", "Jaffer");
@a  = (20,30, 40);
@s = (2000.00, 2500.00, 4000.000);

$i = 0;
foreach (@n){
   $name = $_;
   $age = $a[$i];
   $salary = $s[$i++];
   write;
}

Das obige Beispiel Ausgabe lautet:

===================================
Name                    Age Page 1
===================================
===================================
Ali                     20
  2000.00
===================================
===================================
w3big                  30
  2500.00
===================================
===================================
Jaffer                  40
  4000.00
===================================

Ausgabe in andere Datei

Standardmäßig wird die Funktion, die Ergebnisse auf die Standardausgabedatei STDOUT schreiben, können wir machen es auch um das Ergebnis zu jeder anderen Datei ausgibt. Der einfachste Weg ist, Variable-Datei als Parameter zu schreiben, wie zum Beispiel:

write(MYFILE);

Schreiben Sie den Code über den Standard-Druckformat Ausgabe in eine Datei MYFILE MYFILE genannt in zu verwenden.

Aber das kann nicht verwendet werden, um das Druckformat von $ ~ Variable zu ändern. Systemvariablen $ ~ Variable funktioniert nur für die Standard-Datei, können wir die Standard-Dateivariable $ ~ Änderungen ändern, dann schreiben Sie anrufen.

#!/usr/bin/perl

if (open(MYFILE, ">tmp")) {
$~ = "MYFORMAT";
write MYFILE; # 含文件变量的输出,此时会打印与变量同名的格式,即MYFILE。$~里指定的值被忽略。

format MYFILE = # 与文件变量同名 
=================================
      输入到文件中
=================================
.
close MYFILE;
}

Nach der erfolgreichen Implementierung können wir den Inhalt von tmp-Datei anzuzeigen, wie folgt:

$ cat tmp 
=================================
      输入到文件中
=================================

Wir können die select verwenden, um die Standard-Dateivariable zu ändern, die der aktuelle interne Variable, die die Standard-Datei anzeigt, zurückgibt, so dass wir ein Unterprogramm erstellen können, nach ihren eigenen Ideen Ausgang, ohne den Rest des Programms zu beeinflussen.

#!/usr/bin/perl

if (open(MYFILE, ">>tmp")) {
select (MYFILE); # 使得默认文件变量的打印输出到MYFILE中
$~ = "OTHER";
write;           # 默认文件变量,打印到select指定的文件中,必使用$~指定的格式 OTHER

format OTHER =
=================================
  使用定义的格式输入到文件中
=================================
. 
close MYFILE;
}

Nach der erfolgreichen Implementierung können wir den Inhalt von tmp-Datei anzuzeigen, wie folgt:

$ cat tmp 
=================================
      输入到文件中
=================================
=================================
  使用定义的格式输入到文件中
=================================