人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

Perl教學 第10篇 格式化輸出之3

Perl教學 第10篇 格式化輸出之3

更新時間:2022-08-24 文章作者:未知 信息來源:網絡 閱讀次數:

2、格式和局域變量
在上例中,你可能已經注意到子程序write_letter調用write輸出字母及其出現次數,即使格式定義在子程序外部仍能正常工作。在第17行中將字母及其出現次數傳遞給該子程序,在子程序中,打印格式使用局域變量$letter和$value,這樣保證了在foreach循環中每次輸出當前的字母和值。
然而要注意的是,使用my定義的局域變量要求格式定義在子程序內部,否則就不會輸出,因此,用write輸出的局域變量一定要用local定義。(local和my詳見《子程序》一章)
注:Perl4中沒有my函數,故不會有此問題。
3、選擇值域格式
我們已經知道了打印格式和write函數怎么工作,現在來看看值域的格式,見下表:

格式 值域含義
@<<< 左對齊輸出
@>>> 右對齊輸出
@||| 中對齊輸出
@##.## 固定精度數字
@* 多行文本

每個值域的第一個字符是行填充符,當使用@字符時,不做文本格式化。對文本的格式化稍后來講。
在上表中,除了多行值域@*,域寬都等于其指定的包含字符@在內的字符個數,例如:
@###.##
表示七個字符寬,小數點前四個,小數點后兩個。
4、輸出值域字符
在打印格式里,特定字符如@、<和>被看作值域定義,那么如何將它們輸出呢?方法如下:

format SPECIAL =
This line contains the special character @.
"@"
.
四、輸出到其它文件
缺省地,函數write將結果輸出到標準輸出文件STDOUT,我們也可以使它將結果輸出到任意其它的文件中。最簡單的方法就是把文件變量作為參數傳遞給write,如:
write (MYFILE);
這樣,write就用缺省的名為MYFILE的打印格式輸出到文件MYFILE中,但是這樣就不能用$~變量來改變所使用的打印格式。系統變量$~只對缺省文件變量起作用,我們可以改變缺省文件變量,改變$~,再調用write,例如:
select (MYFILE);
$~ = "MYFORMAT";
write;
當select改變缺省文件變量時,它返回當前缺省文件變量的內部表示,這樣我們就可以創建子程序,按自己的想法輸出,又不影響程序的其它部分,如下:

sub write_to_stdout {
local ($savefile, $saveformat);
$savefile = select(STDOUT);
$saveformat = $~;
$~ = "MYFORMAT";
write;
$~ = $saveformat;
select($savefile);
}
五、分頁
在輸出到打印機時,可以在每頁頂部輸出相應的信息,這樣的特殊文本叫頁眉。定義頁眉實際上就是定義名為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;


溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 南充市| 贞丰县| 清河县| 遵义县| 五大连池市| 犍为县| 丽水市| 长丰县| 甘肃省| 会东县| 张掖市| 广安市| 巴林右旗| 廊坊市| 渝北区| 方山县| 遵义市| 青铜峡市| 黔江区| 南江县| 镇巴县| 扎赉特旗| 姚安县| 合阳县| 图木舒克市| 和平县| 海口市| 五家渠市| 英超| 博野县| 江华| 荔浦县| 洛阳市| 万年县| 平阳县| 五台县| 西和县| 长阳| 龙口市| 肃北| 新蔡县|