Perl 格式

Perl 有一個機制,我們可以使用它生成報告。使用此功能,我們可以在輸出螢幕或檔案中列印時完全按照我們想要的方式生成報告。可以使用 Perl 中提供的 printfsprintf 函式編寫簡單格式。

printf "%05d\n", 30;

這將包括在 30 前面填充零,使得總數位數為 5,同樣可以用於 sprintf

sprintf "%05d\n", 30; # This will print the same as printf.

使用 printfsprintf,我們可以獲得大多數 Perl 格式。但就報告而言,有些難以實施。

報告示例:

======================================================
名稱		地址		年齡	電話
======================================================
Tom		Beijing		24 	123456
Nicky	Shanghai	27	456789

以上是我們需要在 Perl 中以相同方式列印的示例報告。這可以通過使用 perl printfperl sprintf 來實現。它可以使用格式有效地來實現。

格式可以用以下方式宣告。

format FORMATNAME=FORMATLIST.

在這裡,我們將使用特定的方法寫入將資料列印到輸出螢幕或檔案中。

符號 說明
@ 用於表示欄位持有者的開頭
> 右對齊文字
< 左對齊文字
| 中心對齊
# 如果有多個 # 提供的數字。如果單個 #support 則假設為註釋
. 小數點
^ 欄位持有者的開始也可以用於多行,也可以用於自動換行
~ 如果變數為空,則行應為空
@* 多行
($name,$addr,$age,$phone)=("krishna","chennai","24","929309242"); 

write;

($name,$addr,$age,$phone)=("shruthi","chennai","24","929309232"); 

write; 

format STDOUT_TOP= 

=============================================================== 

NAME ADDRESS AGE PHONE 

===============================================================

 . 

format STDOUT= 

@<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<< @<<< @<<<<<<<<<< 

$name, $addr, $age, $phone 

.

我們執行程式碼以檢視輸出。

我們使用 @ 符號來指定欄位持有者或字串的開頭,< 每個字元。

我們使用 STDOUT 在標準輸出上列印。我們可以將其更改為用於將資料寫入檔案的檔案處理程式。

open(REPORT,">test.txt"); 

($name,$addr,$age,$phone)=("krishna","chennai","24","929309232"); 

write REPORT; 

($name,$addr,$age,$phone)=("shruthi","chennai","24","929309232"); 

write REPORT; 

format REPORT_TOP= 

=============================================================== 

NAME ADDRESS AGE PHONE 

===============================================================

 . 

format REPORT= 

@<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<< @<<< @<<<<<<<<<< 

$name, $addr, $age, $phone

我們可以將 < 替換為 >| 更改文字的對齊方式。STDOUT_TOP 用於設計格式的頭資訊。我們也可以使用與檔案處理程式相同的 FH_TOPFH 是檔案處理程式)。這會將格式輸出到我們正在工作中的檔案。