如何在 Perl 中使用格式?


為了在 Perl 指令碼中呼叫格式宣告,我們將使用 write 關鍵字 −

write EMPLOYEE;

問題在於格式名稱通常是一個開啟的檔案處理程式的名稱,而 write 語句將把輸出傳送到這個檔案處理程式。由於我們希望將資料傳送到 STDOUT,因此我們必須將 EMPLOYEE 與 STDOUT 檔案處理程式關聯起來。然而,首先我們必須使用 select() 函式確保 STDOUT 是我們選定的檔案處理程式。

select(STDOUT);

然後,我們可以透過使用特殊變數 $~ 或 $FORMAT_NAME 將新格式名稱與 STDOUT 關聯,如下所示 −

$~ = "EMPLOYEE";

當我們現在執行 write() 時,資料將被髮送到 STDOUT。請記住:如果您要將報告寫入 STDOUT 以外的任何其他檔案處理程式,則可以使用 select() 函式選擇該檔案處理程式,其餘邏輯將保持不變。

示例

我們來看下面的例子。這裡我們硬編碼了一些值只是為了展示用法。在實際使用中,您將從檔案或資料庫中讀取值來生成實際報告,您可能需要將最終報告再次寫入檔案。

 動態演示

#!/usr/bin/perl

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

select(STDOUT);
$~ = EMPLOYEE;

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

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

輸出

執行後,這將產生以下結果 −

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

更新時間: 2019-11-29

163 次瀏覽

開啟你的 職業生涯

完成本課程並獲得認證

開始學習
廣告
© . All rights reserved.