Perl 格式
Perl 有一個機制,我們可以使用它生成報告。使用此功能,我們可以在輸出螢幕或檔案中列印時完全按照我們想要的方式生成報告。可以使用 Perl 中提供的 printf
或 sprintf
函式編寫簡單格式。
printf "%05d\n", 30;
這將包括在 30 前面填充零,使得總數位數為 5,同樣可以用於 sprintf
。
sprintf "%05d\n", 30; # This will print the same as printf.
使用 printf
和 sprintf
,我們可以獲得大多數 Perl 格式。但就報告而言,有些難以實施。
報告示例:
======================================================
名稱 地址 年齡 電話
======================================================
Tom Beijing 24 123456
Nicky Shanghai 27 456789
以上是我們需要在 Perl 中以相同方式列印的示例報告。這可以通過使用 perl printf
和 perl 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_TOP
(FH
是檔案處理程式)。這會將格式輸出到我們正在工作中的檔案。