六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

Perl教學(xué) 第10篇 格式化輸出之3

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

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

每個(gè)值域的第一個(gè)字符是行填充符,當(dāng)使用@字符時(shí),不做文本格式化。對(duì)文本的格式化稍后來(lái)講。
在上表中,除了多行值域@*,域?qū)挾嫉扔谄渲付ǖ陌址鸃在內(nèi)的字符個(gè)數(shù),例如:
@###.##
表示七個(gè)字符寬,小數(shù)點(diǎn)前四個(gè),小數(shù)點(diǎn)后兩個(gè)。
4、輸出值域字符
在打印格式里,特定字符如@、<和>被看作值域定義,那么如何將它們輸出呢?方法如下:

format SPECIAL =
This line contains the special character @.
"@"
.
四、輸出到其它文件
缺省地,函數(shù)write將結(jié)果輸出到標(biāo)準(zhǔn)輸出文件STDOUT,我們也可以使它將結(jié)果輸出到任意其它的文件中。最簡(jiǎn)單的方法就是把文件變量作為參數(shù)傳遞給write,如:
write (MYFILE);
這樣,write就用缺省的名為MYFILE的打印格式輸出到文件MYFILE中,但是這樣就不能用$~變量來(lái)改變所使用的打印格式。系統(tǒng)變量$~只對(duì)缺省文件變量起作用,我們可以改變?nèi)笔∥募兞浚淖?~,再調(diào)用write,例如:
select (MYFILE);
$~ = "MYFORMAT";
write;
當(dāng)select改變?nèi)笔∥募兞繒r(shí),它返回當(dāng)前缺省文件變量的內(nèi)部表示,這樣我們就可以創(chuàng)建子程序,按自己的想法輸出,又不影響程序的其它部分,如下:

sub write_to_stdout {
local ($savefile, $saveformat);
$savefile = select(STDOUT);
$saveformat = $~;
$~ = "MYFORMAT";
write;
$~ = $saveformat;
select($savefile);
}
五、分頁(yè)
在輸出到打印機(jī)時(shí),可以在每頁(yè)頂部輸出相應(yīng)的信息,這樣的特殊文本叫頁(yè)眉。定義頁(yè)眉實(shí)際上就是定義名為filename_TOP的打印格式,例如給標(biāo)準(zhǔn)輸出文件定義頁(yè)眉如下:
format STDOUT_TOP =
Consolidated Widgets Inc. 1994 Annual Report
.
在頁(yè)眉的定義中也可以包含值域,頁(yè)眉中經(jīng)常使用的一個(gè)特殊值是當(dāng)前頁(yè)碼,存貯在系統(tǒng)變量$%中,如:
format STDOUT_TOP =
Page @<<.
$%
.
我們也可以通過改變系統(tǒng)變量$^改變定義頁(yè)眉的打印格式名,與$~一樣,$^只對(duì)當(dāng)前缺省文件起作用,因此可以與select函數(shù)結(jié)合使用。
缺省情況下,每頁(yè)長(zhǎng)度為60行,可以通過改變$=來(lái)改變頁(yè)長(zhǎng),如:
$= = 66; #頁(yè)長(zhǎng)設(shè)為66行
此賦值語(yǔ)句必須出現(xiàn)在第一個(gè)write語(yǔ)句前。
注:一般使用分頁(yè)機(jī)制時(shí)不用print函數(shù),因?yàn)楫?dāng)用write輸出時(shí),Perl解釋器跟蹤每頁(yè)的當(dāng)前行號(hào)。如果必須使用print而又不打亂頁(yè)計(jì)數(shù),可以調(diào)整系統(tǒng)變量$-。$-的含義是當(dāng)前行到頁(yè)末之間的行數(shù),當(dāng)$-達(dá)到零時(shí),就開始新的一頁(yè),調(diào)整方法如:
print ("Here is a line of output\n");
$- -= 1;





主站蜘蛛池模板: 亚洲吹箫| 午夜大片在线观看 | 日韩免费一级 | 一二三四免费观看高清观看在线 | 青青草原综合网 | 亚洲激情另类小说 | 日韩欧美一区二区三区不卡在线 | 欧美性猛交xxxx乱大交蜜桃 | 午夜性影院爽爽爽爽爽爽 | 一级做a爰性色毛片免费 | 亚洲第一页在线视频 | 欧美在线免费观看视频 | 青草免费 | 伊人免费在线 | 日本天堂免费a | 人人看97 | 日韩精品123| 日本一本二本在线观看 | 日本国产一区在线观看 | 青草免费免费观看视频在线 | 四虎欧美永久在线精品免费 | 伊人色影院 | 色香欲综合成人免费视频 | 色吧在线视频 | 在线观看亚洲 | 欧美做a一级视频免费观看 欧美坐爱视频 | 亚洲黄色网页 | 午夜夜伦鲁鲁片 | 青青青在线网站视频在线 | 色成人亚洲 | 四虎免费影院在线播放 | 日本精高清区一 | 一级片黄色免费 | 日本不良网站 | 亚洲国产成人久久精品hezyo | 亚洲午夜精品久久久久久抢 | 婷婷综合色伊人阁 | 五月婷婷激情网 | 四虎免费影院4hu永久免费 | 日本国产免费一区不卡在线 | 色悠久久久久综合网伊人男男 |