格式化輸出

2022-07-25 00:21:31 字數 1419 閱讀 3962

一、定義列印格式,format

format formatnem = 

二、顯示列印格式

1. 將系統變數$~設成所要使用的格式

2. 呼叫函式write

三、在列印格式中顯示值

1. 通用的列印格式

2. 格式和區域性變數

3. 選擇值域格式

4. 輸出值域字元

四、 輸出到其他檔案

預設地,函式write將結果輸出到標準輸出檔案stdout,我們也可以使它將結果輸出到任意其它的檔案中。最簡單的方法就是把檔案變數作為引數傳遞給write,如:

write (myfile);

這樣,write就用預設的名為myfile的列印格式輸出到檔案myfile中,但是這樣就不能用$~變數來改變所使用的列印格式。系統變數$~只對預設檔案變數起作用,我們可以改變預設檔案變數,改變$~,再呼叫write,例如:

select (myfile);

$~ = "myformat";

write;

五、分頁

在輸出到印表機時,可以在每頁頂部輸出相應的資訊,這樣的特殊文字叫頁首。定義頁首實際上就是定義名為filename_top的列印格式,例如給標準輸出檔案定義頁首如下:

format stdout_top =

consolidated widgets inc. 1994 annual report

.在頁首的定義中也可以包含值域,頁首中經常使用的乙個特殊值是當前頁碼,存貯在系統變數$%中,如:

format stdout_top =

page @<<.$%.

我們也可以通過改變系統變數$^改變定義頁首的列印格式名,與$~一樣,$^只對當前預設檔案起作用,因此可以與select函式結合使用。

預設情況下,每頁長度為60行,可以通過改變$=來改變頁長,如:

$= = 66; #頁長設為66行

此賦值語句必須出現在第乙個write語句前。

注:一般使用分頁機制時不用print函式,因為當用write輸出時,perl直譯器跟蹤每頁的當前行號。如果必須使用print而又不打亂頁計數,可以調整系統變數$-。$-的含義是當前行到頁末之間的行數,當$-達到零時,就開始新的一頁,調整方法如:

print ("here is a line of output\n");

$- -= 1;

六、格式化長字串

我們已經學過值域@*可以輸出多行文字,但它完全將字串原樣輸出,不加以格式化。在perl中對長字串(包含換行)進行格式化的值域定義很簡單,只需把打頭的@字元換成^就行了,這種文字格式化中,perl直譯器在一行中放置盡可能多的單詞。每當輸出一行文字,被輸出的子串就從變數中刪除,再次在域值中使用該變數就把剩下的字串繼續按格式輸出。當內容已輸出完畢,該變數就成了空串,再輸出就會輸出空行,為避免輸出空行,可以在值域格式行首加乙個~字元。

七、用printf格式化輸出

格式化輸出

a 浮點數 十六進製制數字和p 記數法 a 浮點數 十六進製制數字和p 記法 c 乙個字元 char c 乙個iso寬字元 d 有符號十進位制整數 int ld ld 長整型資料 long hd 輸出短整形。e 浮點數 e 記數法 e 浮點數 記數法 f 單精度浮點數 預設float 十進位制記數法...

格式化輸出

a 浮點數 十六進製制數字和p 記數法 a 浮點數 十六進製制數字和p 記法 c 乙個字元 char c 乙個iso寬字元 d 有符號十進位制整數 int ld ld 長整型資料 long hd 輸出短整形。e 浮點數 e 記數法 e 浮點數 記數法 f 單精度浮點數 預設float 十進位制記數法...

格式化輸出

簡單輸出 print 你好小明 print 你好小紅 print 你好小李 帶變數的輸出 更有靈活性,易於維護 name 小李 print name 加號拼接字串 pay 8 print 花費一共 pay 元 print裡用逗號列印多個變數 name 小明 score 90 print name,s...