一、定義列印格式,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...