精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Perl格式化輸出語法大全

開發 架構
在學習Perl語言的過程中,經常會遇到Perl格式化輸出的問題,這里向大家簡單介紹一下,希望本文的介紹能讓你有所收獲。

本文和大家重點學習一下Perl格式化輸出的用法,之前我們已經見過用print函數將原始的未格式化的文本輸出到文件,這里講述如何用函數write和打印格式來生成Perl格式化輸出。

Perl格式化輸出

我們已經見過用print函數將原始的未格式化的文本輸出到文件,本章講述如何用函數write和打印格式來生成格式化的輸出。

一、Perl格式化輸出之定義打印格式

定義打印格式的關鍵字為format,語法為:

formatformatname=
lines_of_output

◆打印格式名formatname的命名規則與一般變量相同。結束行為一個句號,此行不能有任何其它字符,包括空格,句號必須是該行***個字符。
打印格式的定義象子程序一樣可以放在任何地方,甚至可以放在條件語句中,但是***把它們集中放在程序的開頭或結尾。

二、Perl格式化輸出之顯示打印格式

打印格式的顯示有兩步:
1、將系統變量$~設成所要使用的格式
2、調用函數write
例如:

  1. 1:#!/usr/local/bin/perl  
  2. 2:  
  3. 3:$~="MYFORMAT";  
  4. 4:write;  
  5. 5:  
  6. 6:formatMYFORMAT=  
  7. 7:===================================  
  8. 8:HereisthetextIwanttodisplay.  
  9. 9:===================================  
  10. 10:.  

結果輸出如下:

$program
===================================
HereisthetextIwanttodisplay.
===================================
$
如果不用$~指定打印格式,Perl解釋器就假定要使用的格式名與要寫入的文件變量同名,在本例中,如果不指定使用MYFORMAT,則Perl解釋器試圖使用名為STDOUT的打印格式。#p#

三、Perl格式化輸出之在打印格式中顯示值

我們使用打印格式的主要原因當然是格式化存貯在簡單變量或數組變量中的值從而生成可讀性好的輸出,這一目的用“值域”來實現。每個值域指定一個值,如變量或表達式,調用write函數時,該值就以值域指定的格式顯示。

1、通用的打印格式

打印格式的一個缺點是定義中包含了變量名,例如:

formatMYFORMAT=
==========================================================
Thewinningnumberis@<<<<<<!
$winnum
==========================================================

◆當調用write輸出此格式時,必須記著它使用了變量$winnum。用子程序和局域變量就可以創建更通用的打印格式。

2、格式和局域變量

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

3、選擇值域格式

我們已經知道了打印格式和write函數怎么工作,現在來看看值域的格式,見下表:


每個值域的***個字符是行填充符,當使用@字符時,不做文本格式化。對文本的格式化稍后來講。
在上表中,除了多行值域@*,域寬都等于其指定的包含字符@在內的字符個數,例如:
@###.##
表示七個字符寬,小數點前四個,小數點后兩個。

4、輸出值域字符

在打印格式里,特定字符如@、<和>被看作值域定義,那么如何將它們輸出呢?方法如下:

formatSPECIAL=
Thislinecontainsthespecialcharacter@.
"@"  #p#

四、Perl格式化輸出之輸出到其它文件

缺省地,函數write將結果輸出到標準輸出文件STDOUT,我們也可以使它將結果輸出到任意其它的文件中。最簡單的方法就是把文件變量作為參數傳遞給write,如:
write(MYFILE);
這樣,write就用缺省的名為MYFILE的打印格式輸出到文件MYFILE中,但是這樣就不能用$~變量來改變所使用的打印格式。系統變量$~只對缺省文件變量起作用,我們可以改變缺省文件變量,改變$~,再調用write,例如:
select(MYFILE);
$~="MYFORMAT";
write;

◆當select改變缺省文件變量時,它返回當前缺省文件變量的內部表示,這樣我們就可以創建子程序,按自己的想法輸出,又不影響程序的其它部分,如下:

subwrite_to_stdout{
local($savefile,$saveformat);
$savefile=select(STDOUT);
$saveformat=$~;
$~="MYFORMAT";
write;
$~=$saveformat;
select($savefile);
}

五、Perl格式化輸出之分頁

在輸出到打印機時,可以在每頁頂部輸出相應的信息,這樣的特殊文本叫頁眉。定義頁眉實際上就是定義名為filename_TOP的打印格式,例如給標準輸出文件定義頁眉如下:
formatSTDOUT_TOP=
ConsolidatedWidgetsInc.1994AnnualReport

◆在頁眉的定義中也可以包含值域,頁眉中經常使用的一個特殊值是當前頁碼,存貯在系統變量$%中,如:
formatSTDOUT_TOP=
Page@<<.
$%

◆我們也可以通過改變系統變量$^改變定義頁眉的打印格式名,與$~一樣,$^只對當前缺省文件起作用,因此可以與select函數結合使用。
缺省情況下,每頁長度為60行,可以通過改變$=來改變頁長,如:
$==66;#頁長設為66行

此賦值語句必須出現在***個write語句前。
注:一般使用分頁機制時不用print函數,因為當用write輸出時,Perl解釋器跟蹤每頁的當前行號。如果必須使用print而又不打亂頁計數,可以調整系統變量$-。$-的含義是當前行到頁末之間的行數,當$-達到零時,就開始新的一頁,調整方法如:
print("Hereisalineofoutput\n");
$--=1;         #p#

六、Perl格式化輸出之格式化長字符串

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

 

  1. 1:#!/usr/local/bin/perl  
  2. 2:  
  3. 3:@quotation=<STDIN>;  
  4. 4:$quotation=join("",@quotation);  
  5. 5:$~="QUOTATION";  
  6. 6:write;  
  7. 7:  
  8. 8:formatQUOTATION=  
  9. 9:Quotationfortheday:  
  10. 10:-----------------------------  
  11. 11:~^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
  12. 12:$quotation  
  13. 13:~^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
  14. 14:$quotation  
  15. 15:~^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
  16. 16:$quotation  
  17. 17:-----------------------------  
  18. 18:.  
  19.  

 運行結果如下: 

  1. $program  
  2. Anysufficientlyadvancedprogramming  
  3. languageisindistinguishablefrommagic.  
  4. ^D  
  5. Quotationfortheday:  
  6. -----------------------------  
  7. Anysufficientlyadvancedprogramminglanguageis  
  8. indistinguishablefrommagic.  
  9. -----------------------------  
  10. $  
  11.  

 如果把打印格式中行首的~字符去掉,上面的輸出結果中就會多一行空行。很明顯,當字符串長度不明確時,這種用法很不方便,原因就在于它指明了輸出的行數上限,超過這一上限的字符就不會被輸出,解決方法很簡單,就是在域值格式行首加兩個~字符,這樣就會持續按格式輸出文本直到輸出完畢,用此方法把上述程序改寫如下:

  1. 1:#!/usr/local/bin/perl  
  2. 2:  
  3. 3:@quotation=<STDIN>;  
  4. 4:$quotation=join("",@quotation);  
  5. 5:$~="QUOTATION";  
  6. 6:write;  
  7. 7:  
  8. 8:formatQUOTATION=  
  9. 9:Quotationfortheday:  
  10. 10:-----------------------------  
  11. 11:~~^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
  12. 12:$quotation  
  13. 13:-----------------------------  
  14. 14:.  

這樣運行結果相同。

七、用printfPerl格式化輸出

還有一種容易掌握和使用的Perl格式化輸出函數,那就是printf,它與C語言中的printf基本上是相同的。printf有兩個參數,一個是字符串,其中含有一個或多個域值形式,另一個是與各域值相對應的變量值按一定格式替換,如:
printf("ThenumberIwanttoprintis%d.\n",$number);
各種域值形式如下表:

一些使用細節如下:

1、在格式d、o、u或x中,如果整數值較大或可能較大,可加個l字符,意為長整型,如%ld。
2、%字符后加正整數表示該域的最小寬度,如果輸出結果寬度不足,則向右對齊,前面用空格補足,如果該正整數以數字0打頭,則補足字符為0。若%字符后為負整數,則結果向右對齊。
3、浮點數域值(%c、%f和%g)中可以指定小數點前后的寬度,如%8.3f意為總寬度為8個字符,小數點后(即小數部分)為3個字符,多出的小數部分四舍五入。
4、在整數、字符或字符串的值域中使用如上的小數形式n.m,整數部分n為總寬度,小數部分m為輸出結果的***寬度,這樣就保證了輸出結果前至少有n-m個空格。
 

【編輯推薦】

  1. Perl格式化輸出用法解析
  2. Perl文件句柄概念詳解
  3. 學習筆記 詳解Perl格式化輸出
  4. Perl學習筆記----Perl格式化輸出詳解
  5. 術語匯編 Perl變量中Perl關聯數組用法解析

 

 

責任編輯:佚名 來源: csdn.net
相關推薦

2010-07-16 15:44:57

Perl格式化輸出

2010-07-16 15:23:34

Perl格式化輸出

2010-07-15 11:29:25

Perl格式化輸出

2010-07-15 11:16:25

Perl格式化輸出

2010-07-16 14:37:26

Perl格式化輸出

2010-07-21 14:25:24

Perl格式化輸出

2024-01-08 22:03:22

python代碼開發

2020-09-02 07:19:41

printf 格式化輸出Unix

2023-04-11 10:37:40

bash命令printf

2022-05-09 14:04:27

Python字符串格式化輸出

2022-12-30 08:30:28

Linux命令行json

2020-11-03 10:21:33

MySQL

2023-01-12 09:30:31

Linux命令行xml

2010-07-20 14:41:55

Perl語法

2009-08-03 14:25:59

C#日期格式化

2025-09-02 01:25:00

LangGraph智能體格式化

2013-07-29 04:37:53

iOS開發iOS開發學習NSLog輸出格式

2022-05-09 08:17:37

InstantJava字符

2024-12-09 08:10:00

Python字符串格式化

2009-08-03 16:24:05

C#格式化
點贊
收藏

51CTO技術棧公眾號

日韩精品视频在线观看一区二区三区| 亚洲国产精品第一页| 免费观看成年在线视频网站| 日韩av一区二区在线影视| 综合国产在线视频| 免费看三级黄色片| 日韩欧美一中文字暮专区| 国产精品天美传媒沈樵| 成人在线资源网址| 伊人久久久久久久久久久久| 亚洲最新av| 亚洲第一精品夜夜躁人人躁| 亚洲国产日韩欧美在线观看| 青草在线视频| 国产日韩欧美精品一区| yellow视频在线观看一区二区| 中文字幕国产在线观看| 女主播福利一区| 一区二区福利视频| 精品人妻一区二区免费| 视频欧美精品| 欧美性猛xxx| 少妇高潮大叫好爽喷水| 看电影就来5566av视频在线播放| 国产在线视视频有精品| 国产不卡av在线| 久草免费在线观看视频| 欧美精品尤物在线观看| 日韩极品精品视频免费观看| 特黄特黄一级片| av免费在线一区| 第一福利永久视频精品| 国内自拍中文字幕| 色影院视频在线| 久久免费电影网| 国产精品免费一区二区三区| 国产又黄又爽视频| 日本aⅴ免费视频一区二区三区| 亚洲18私人小影院| 久草网视频在线观看| 99精品视频在线观看播放| 亚洲亚裔videos黑人hd| 日韩中文字幕电影| 三级精品视频| 亚洲高清色综合| 日本77777| 亚洲视频资源| 欧美网站一区二区| 欧美综合在线观看视频| 欧美性xxx| 欧美日韩亚洲视频| 日韩少妇内射免费播放| 福利影院在线看| 亚洲国产一区二区在线播放| 精品一区二区三区毛片| caopo在线| 亚洲人成7777| 看一级黄色录像| 成人在线观看亚洲| 亚洲激情图片qvod| 黄色片免费在线观看视频| 青青草原av在线| 午夜私人影院久久久久| 久久成人免费观看| 亚洲私拍视频| 欧美中文一区二区三区| www.com黄色片| 香蕉久久一区| 欧美一区二区免费视频| 俄罗斯女人裸体性做爰| 中文字幕一区二区三区日韩精品| 日韩欧美高清一区| 亚洲国产精品第一页| 欧美偷窥清纯综合图区| 亚洲性夜色噜噜噜7777| 国产小视频你懂的| 国产精品国码视频| 欧美伊久线香蕉线新在线| 无码视频一区二区三区| 日本 国产 欧美色综合| 91久久爱成人| 天天综合网在线| 中文字幕不卡的av| 欧美少妇在线观看| 绿色成人影院| 欧美日韩免费视频| 国产乱国产乱老熟300部视频| 草草视频在线一区二区| 亚洲欧美色图片| 91禁男男在线观看| 韩国自拍一区| 国产精品av免费在线观看| 中文字幕+乱码+中文乱码91| 国产成人精品一区二区三区网站观看| 久久久久久国产精品免费免费| 丝袜美腿美女被狂躁在线观看| 亚洲国产另类精品专区| 最近中文字幕一区二区| 国产精品xxx在线观看| 伊人伊成久久人综合网小说| 欧美毛片在线观看| 日韩1区2区3区| 高清av免费一区中文字幕| 国产精品免费播放| 亚洲一区二区欧美激情| 天天操天天爱天天爽| 国产精品xxxav免费视频| 中文字幕亚洲欧美日韩在线不卡| 国产精品成人国产乱| 麻豆视频一区二区| 久久国产精品-国产精品| 麻豆视频在线| 91成人国产精品| 特级特黄刘亦菲aaa级| 久久国产影院| 国产98色在线| 亚洲欧美日本在线观看| 亚洲激情自拍偷拍| 国产aⅴ爽av久久久久| 久久综合色占| 97福利一区二区| 黄色在线免费观看| 国产成人无遮挡在线视频| 欧美一区二区视频17c| 污污视频在线| 制服丝袜一区二区三区| av直播在线观看| 欧美精品国产| 国产精品中文字幕在线| 亚洲欧美日韩精品永久在线| 亚洲欧美日韩在线不卡| 99re精彩视频| 免费毛片在线不卡| 欧美极品美女电影一区| 中日韩av在线| 99精品视频在线免费观看| 中文字幕综合在线观看| 久久99国产精品二区高清软件| 亚洲а∨天堂久久精品9966| 992在线观看| 久久精品综合| 极品校花啪啪激情久久| 污污的视频在线观看| 日韩一区二区免费在线观看| 日本精品久久久久中文| 久久成人国产| 精品蜜桃传媒| 成人免费网站观看| 日韩亚洲欧美中文三级| 欧美日韩一级大片| 国产一区二区三区蝌蚪| 亚洲va久久久噜噜噜久久狠狠 | 天堂精品中文字幕在线| dy888夜精品国产专区| 天堂а√在线资源在线| 欧美最新大片在线看| 少妇太紧太爽又黄又硬又爽小说| 国产日韩一区二区三区在线| 国产一区二区视频在线免费观看| 免费网站在线观看人| 日韩三级中文字幕| 老女人性淫交视频| 成人国产视频在线观看| 野外做受又硬又粗又大视频√| 免费欧美网站| 欧美日韩国产成人在线观看| 国产视频在线观看视频| 综合久久一区二区三区| 美女被艹视频网站| 欧美久久一级| 国产精品日韩一区二区免费视频 | 色av中文字幕一区| 99产精品成人啪免费网站| 亚洲日本中文字幕区| 小早川怜子一区二区三区| 希岛爱理一区二区三区| 亚洲直播在线一区| 国产乱色在线观看| 亚洲精品美女在线观看| 99精品在线播放| 亚洲国产精品99久久久久久久久| 天天干天天操天天玩| 欧美电影免费观看高清| 成人蜜桃视频| 欧美a级在线观看| 亚洲免费av电影| 最新国产中文字幕| 中文字幕色av一区二区三区| 日本www.色| 欧美99在线视频观看| 国产精品自拍首页| 中文不卡1区2区3区| 一区二区三区国产视频| 91亚洲欧美激情| 亚洲欧美激情插 | 国产精品色婷婷在线观看| 欧美日本黄视频| 亚洲av成人精品一区二区三区在线播放 | 在线观看亚洲a| 糖心vlog免费在线观看 | 精品少妇人妻一区二区黑料社区| 日韩成人精品在线观看| 国产午夜亚洲精品理论片色戒| 丁香婷婷综合五月| 91成人免费在线观看| 免费在线观看av电影| 日韩高清不卡av| 一区二区三区播放| 亚洲精品久久嫩草网站秘色| 亚洲av网址在线| 日本不卡视频在线观看| 精品久久久无码人妻字幂| 日韩有码av| 超碰在线97av| av有声小说一区二区三区| 色妞在线综合亚洲欧美| 人妻与黑人一区二区三区| 欧美中文字幕久久| 国产一级在线视频| 最新国产成人在线观看| 中文人妻一区二区三区| 精品中文av资源站在线观看| 成人黄色av片| 午夜精品久久久久久久四虎美女版| 5g国产欧美日韩视频| 欧美黄色成人| 51精品国产黑色丝袜高跟鞋| 黄网站视频在线观看| 日韩精品中文字幕在线播放| 国产男女无套免费网站| 色综合天天综合网天天看片| 福利所第一导航| 中文字幕欧美激情| 黄色录像a级片| 美美哒免费高清在线观看视频一区二区 | 少妇高潮 亚洲精品| 丰满少妇高潮在线观看| 欧美嫩在线观看| 五月天婷婷久久| 亚洲伦在线观看| 免费看特级毛片| 亚洲国产精品99久久久久久久久| 捆绑裸体绳奴bdsm亚洲| 国产精品综合在线视频| the porn av| 蜜桃久久久久久| 黄色片视频在线播放| 欧美涩涩网站| 艳母动漫在线观看| 国产在视频线精品视频www666| 国产99午夜精品一区二区三区| 视频欧美一区| 亚洲综合日韩在线| 五月天色综合| 国产日韩av在线播放| 亚洲成人一区在线观看| 国产精品天天狠天天看| 台湾成人免费视频| 国产精品福利网| 日韩av中字| 国产精品麻豆va在线播放| 性欧美hd调教| 国产成人精品在线| 亚洲人体视频| 清纯唯美亚洲综合| 日韩三区免费| 国产精品 欧美在线| 一级片手机在线观看| 911国产在线| 99视频国产精品免费观看a| 日韩国产在线不卡视频| 中文字幕精品一区| 中文字幕第17页| 麻豆91精品视频| 五月天av在线播放| 人禽交欧美网站| 成人免费播放器| 日韩综合在线视频| 午夜免费一区二区| 美女视频黄免费的久久| 日本中文字幕二区| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲精品久久久久久| 高清不卡一区二区| 视频免费在线观看| 久久夜色精品国产欧美乱极品| 手机av免费看| 亚洲欧美一区二区三区国产精品| 美女视频黄免费| 婷婷开心激情综合| 三级网站在线播放| 欧美日韩亚洲综合在线 | 欧美第一黄色网| 电影k8一区二区三区久久 | av成人午夜| 日韩精品免费一区二区夜夜嗨| 蜜桃视频在线观看91| 欧美一级精品片在线看| 蜜桃视频成人在线观看| 雨宫琴音一区二区在线| 亚洲人精品午夜射精日韩| 蜜臀精品久久久久久蜜臀| www.黄色网| 国产婷婷色一区二区三区在线| 欧美视频一区二区在线| 一区二区三区在线免费| 天干夜夜爽爽日日日日| 91精品福利在线一区二区三区| 熟妇人妻一区二区三区四区| 亚洲欧洲激情在线| 欧美xxxx黑人又粗又长| 日av在线播放中文不卡| 99综合久久| 欧美日韩在线播放一区二区| 欧美婷婷在线| 丝袜制服一区二区三区| 国产精品白丝av| 一级性生活毛片| 亚洲精品视频免费观看| 婷婷激情五月网| 欧美一三区三区四区免费在线看 | 天堂√8在线中文| 91精品视频免费| 日本视频在线免费观看| 欧美综合一区| 午夜一区二区三区视频| 久久久久久久久电影| 国产福利片在线| 欧美激情第1页| 成人mm视频在线观看| 国产精品免费在线| 婷婷综合网站| 99久久国产综合精品五月天喷水| 国产精品美女久久久久久不卡| 欧美国产中文字幕| 成人亚洲视频| 久久一区免费| 一区在线视频观看| 性鲍视频在线观看| 91亚洲国产成人精品一区二区三| 精品小视频在线观看| 欧美日韩一区二区三区在线看| 午夜影院免费视频| 欧美精品一区二区三区国产精品| 免费成人在线电影| 久久99国产精品| 一区免费在线| 色婷婷狠狠18禁久久| 亚洲日本电影在线| 国产成人免费看一级大黄| 中文字幕亚洲一区二区三区五十路| 久久久男人天堂| 国产高清一区二区三区| 日韩在线精品| 天天操天天爱天天爽| 久久九九99视频| 久久精品视频5| 亚洲人午夜精品免费| bl视频在线免费观看| 国产伦精品一区二区三区视频免费 | 在线视频中文亚洲| 51一区二区三区| 日本精品一区| 一区二区三区国产盗摄| 久久精品综合视频| 精品日本高清在线播放| 国精品人妻无码一区二区三区喝尿| 色综合视频网站| 欧美爱爱视频| www.日本三级| 成人免费黄色在线| 69精品久久久| 337p日本欧洲亚洲大胆精品| 一二三四视频在线中文| 乱色588欧美| 久热re这里精品视频在线6| www.自拍偷拍| 欧美三级电影在线观看| 1区2区3区在线观看| 国产精品视频在线观看| 99国产**精品****| 久久久高清视频| 激情亚洲一区二区三区四区| 青青色在线视频| 国产精品女主播视频| 欧美性久久久| 风间由美一二三区av片| 91激情在线视频| 免费黄色电影在线观看| 国产福利一区二区三区在线观看| 一区二区动漫| jizz中文字幕| 欧美综合天天夜夜久久| 永久免费网站在线| 久久精品一二三区| 麻豆国产91在线播放| 国产香蕉在线视频| 国产丝袜精品视频| 91精品麻豆| 男女视频网站在线观看|