精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

老司机精品影院| 中文字幕欧美人妻精品一区蜜臀| silk一区二区三区精品视频| 性欧美疯狂xxxxbbbb| 欧美日韩在线观看一区二区三区| 中文字幕在线观看精品| 极品av少妇一区二区| 亚洲视频一区二区三区| 一级黄色免费毛片| 欧美91看片特黄aaaa| 亚洲日本丝袜连裤袜办公室| 国产视频在线观看一区| 亚洲综合一区中| 一区在线播放| 色婷婷综合久久久久| 中国黄色片视频| 日韩和的一区二在线| 亚洲乱码国产乱码精品精98午夜| 久久一区二区精品| 国产叼嘿视频在线观看| 日韩精品视频网站| 久久久亚洲影院| 极品色av影院| 久久99国产精品视频| 精品久久一区二区| 中文字幕第17页| 日韩精品99| 午夜国产不卡在线观看视频| 9l视频自拍9l视频自拍| 国产乱视频在线观看| 成人激情免费电影网址| 成人午夜在线观看| 波多野结衣理论片| 国产精品外国| 欧美激情第一页xxx| 美女视频久久久| 欧美一区二区三区高清视频| 日韩激情av在线免费观看| 乳色吐息在线观看| 91综合国产| 欧美日韩精品在线视频| 潘金莲一级淫片aaaaaa播放1| 成人免费在线电影| 久久久www免费人成精品| 国产一区二区三区高清| 韩国中文字幕hd久久精品| 国产一区二区精品久久| 成人福利在线视频| 国产又大又粗又硬| 美国av一区二区| 国产精品久久久久久久美男| 秋霞av一区二区三区| 亚洲欧美视频| 日韩免费观看在线观看| 日韩精品一区不卡| 奇米影视在线99精品| 国产精品高精视频免费| 在线播放国产一区| 美美哒免费高清在线观看视频一区二区 | 国产亚洲精品bv在线观看| 久久精品国产免费观看| 男人晚上看的视频| 亚洲成人精品| 欧美精品videossex88| 国产无遮挡免费视频| 日韩午夜免费| 日韩av电影国产| 中文字幕视频二区| 免费人成网站在线观看欧美高清| 国产精品久久久久久久久久久新郎| 波多野结衣人妻| 久久成人18免费观看| 亚洲综合社区网| 姝姝窝人体www聚色窝| 久久亚区不卡日本| 亚洲不卡中文字幕| 免费a在线看| 亚洲综合丁香婷婷六月香| 国产av国片精品| 亚洲国产成人二区| 欧美乱妇15p| 精品人妻在线视频| 九九久久婷婷| 久久激情五月丁香伊人| 日本少妇激情舌吻| 丝袜亚洲另类欧美综合| 91在线|亚洲| 色网站免费观看| 欧美高清在线一区二区| 真人做人试看60分钟免费| 久草在线中文最新视频| 欧美日韩一区二区三区视频| 台湾佬美性中文| 免费成人结看片| 久久精品精品电影网| 国产无套内射又大又猛又粗又爽 | 欧美一级特黄a| avtt久久| 亚洲欧美成人网| 在线免费观看亚洲视频| 久久黄色网页| 91在线看网站| 国产福利在线看| 亚洲国产一二三| 在线免费视频a| 一区二区三区亚洲变态调教大结局| 亚洲免费高清视频| 欧美日韩一级在线观看| 久久久久久久高潮| av一区二区三区在线观看| 国产高清自拍视频在线观看| 亚洲国产综合色| 亚洲综合欧美在线| 欧美日韩看看2015永久免费| 久久亚洲综合国产精品99麻豆精品福利 | 成人h动漫精品一区二区| 欧美午夜欧美| 18aaaa精品欧美大片h| 欧美乱妇15p| 午夜精产品一区二区在线观看的| 91成人观看| 国产精品久久久亚洲| 五月激情婷婷网| 亚洲综合丝袜美腿| 在线观看日本www| 国产真实有声精品录音| 8x拔播拔播x8国产精品| www.亚洲天堂.com| 亚洲免费观看高清在线观看| 午夜在线观看av| 亚洲人成精品久久久| 国模吧一区二区| 国产极品久久久| 亚洲欧洲日韩av| 爱爱爱爱免费视频| 日本久久一二三四| 国产99在线|中文| 欧洲毛片在线| 婷婷开心久久网| 制服丝袜第一页在线观看| 欧美精品一线| 亚洲自拍偷拍色图| 国产激情视频在线| 欧美日韩国产高清一区二区 | 亚洲欧美国产77777| 污污视频网站在线| 91精品91| 91久久大香伊蕉在人线| caoporn免费在线视频| 欧美一卡2卡3卡4卡| 精品国产欧美日韩不卡在线观看| 精品一区二区三区在线播放 | 国精产品一区一区三区免费视频| 亚洲三级国产| 久久久久久九九九九| 在线天堂资源| 国产一区二区三区视频| 亚洲图片欧美在线| ...av二区三区久久精品| 毛片毛片毛片毛| 婷婷丁香综合| 5566中文字幕一区二区| 日本孕妇大胆孕交无码| 精品国产一区二区三区久久影院| 黄色激情视频在线观看| 99久久99久久免费精品蜜臀| 黄色影院一级片| 国产一区二区亚洲| 91精品国产综合久久久久久蜜臀 | 精品视频97| 91嫩草在线视频| 不卡av免费观看| 亚洲男人天堂网| 亚洲综合网av| 亚洲韩国一区二区三区| 偷拍夫妻性生活| 久久99国产精品麻豆| 996这里只有精品| 清纯唯美亚洲经典中文字幕| 国产精品国产三级国产aⅴ浪潮| 免费网站成人| 亚洲精品福利免费在线观看| 波多野结衣在线观看一区| 亚洲三级在线免费观看| 亚洲精品在线视频免费观看| 日韩av在线播放中文字幕| 91精品国产毛片武则天| 亚洲人成网亚洲欧洲无码| 国产日韩欧美中文| gogo高清在线播放免费| 一区二区三区亚洲| 国内精品久久久久久久久久| 欧美午夜美女看片| 欧洲第一无人区观看| 91看片淫黄大片一级在线观看| 亚洲天堂av一区二区| 国产精品三上| 国产成人精品免费看在线播放| 六月丁香久久丫| 成人亚洲激情网| 户外露出一区二区三区| 久久91亚洲精品中文字幕| 国产精品毛片一区二区三区四区| 日韩美女视频在线| 瑟瑟视频在线免费观看| 亚洲成av人在线观看| 手机在线中文字幕| 久久精品男人天堂av| 无码人妻一区二区三区精品视频| 日韩电影免费在线看| 欧美精品卡一卡二| 一区二区蜜桃| 亚州欧美一区三区三区在线 | 国内精品伊人| 欧美亚洲免费电影| 美足av综合网| 日韩中文字幕免费视频| 欧美日韩影视| 亚洲国产三级网| www.av网站| 91精品久久久久久蜜臀| 中文字幕在线观看视频免费| 亚洲国产精品久久不卡毛片 | 福利视频一区二区| 久久嫩草捆绑紧缚| 国产精品天干天干在观线| 美国黄色一级毛片| 成人黄色a**站在线观看| 手机在线视频一区| 精品一区二区三区免费视频| 熟妇人妻va精品中文字幕| 一区二区三区福利| 永久免费看av| 亚洲人体av| 一级黄色录像免费看| 日韩精品中文字幕第1页| 鲁丝一区鲁丝二区鲁丝三区| 欧美wwwsss9999| 久久av二区| 欧美调教视频| 国产一区二区三区四区五区加勒比| 麻豆一二三区精品蜜桃| 成人有码视频在线播放| 亚洲一区二区小说| 91久久在线视频| 国产精品777777在线播放| 亚洲在线第一页| 玖玖玖视频精品| 国产精品成人观看视频免费| 成人激情自拍| 国产一区二区三区无遮挡| 欧美爱爱网站| 欧美日韩亚洲在线| 国产探花在线精品一区二区| 日本一区二区三区视频在线观看| 国际精品欧美精品| 亚洲春色在线| 中文字幕日韩一区二区不卡| 国产 国语对白 露脸 | 99视频免费播放| 男女视频一区二区| 国产永久免费网站| 国产精品一区专区| av在线播放网址| 久久婷婷久久一区二区三区| 91激情视频在线观看| 国产精品乱人伦中文| 久久高清内射无套| 亚洲aaa精品| av片免费观看| 欧美日韩国产123区| 99久久亚洲精品日本无码| 欧美成人a∨高清免费观看| 少妇一级淫片免费看| 亚洲香蕉成视频在线观看| 成人黄色在线电影| 97热精品视频官网| 欧美xnxx| 成人免费观看网站| 久久综合影院| 影音先锋成人资源网站| 999在线观看精品免费不卡网站| www黄色在线| 国产成人aaa| 性欧美丰满熟妇xxxx性仙踪林| 国产精品久久久久久户外露出| 免费在线观看黄色av| 日韩欧美一区二区三区久久| 亚洲中文字幕在线观看| 亚洲福利在线播放| 99reav在线| 国外视频精品毛片| 美女视频一区| 久久综合婷婷综合| 91成人免费| 无遮挡又爽又刺激的视频| 国产福利一区二区三区视频在线| 一区二区三区免费在线观看视频 | 日本高清www免费视频| 欧美三日本三级三级在线播放| www.午夜激情| 日韩在线中文字| 理论片午夜视频在线观看| 国产欧美日韩视频| 亚洲尤物av| 99国产精品白浆在线观看免费| 日韩精品91亚洲二区在线观看| 日批视频免费看| 国产精品免费丝袜| 成人毛片18女人毛片| 欧美一区二区三区在线观看| 精品av中文字幕在线毛片| 欧美高清在线观看| 欧美另类激情| 日韩在线第一区| 99热这里只有成人精品国产| 无套内谢丰满少妇中文字幕| 国产亚洲一区二区在线观看| 日韩欧美不卡视频| 日韩精品一区二区三区老鸭窝| 91网在线播放| 国产精品wwww| 亚洲区小说区图片区qvod| 国产精品专区在线| 大白屁股一区二区视频| 丰满少妇被猛烈进入一区二区| 欧美日韩黄色影视| аⅴ资源新版在线天堂| 欧美一级在线亚洲天堂| 老司机在线精品视频| 久久艹国产精品| 国产成人av一区二区三区在线| 久草视频手机在线| 欧美女孩性生活视频| 国产高清一区在线观看| 日本欧美爱爱爱| 婷婷精品在线| 色欲av无码一区二区人妻| proumb性欧美在线观看| 日韩av女优在线观看| 精品播放一区二区| tube8在线hd| 国产精华一区| 亚洲免费大片| 艳妇乳肉亭妇荡乳av| 婷婷综合五月天| 免费在线国产| 国产成人在线一区| 日本午夜一区| 粉色视频免费看| 亚洲视频综合在线| 国产精品熟女久久久久久| 久久精品中文字幕| 日韩视频一二区| 搞av.com| 91麻豆精品在线观看| 成人av网站在线播放| 中文字幕精品一区久久久久| 亚洲精品成人一区| 狠狠干视频网站| 成人黄色av网站在线| 免费看日批视频| 在线视频中文亚洲| 欧美午夜网站| 成人一对一视频| www国产精品av| 中文字幕人妻精品一区| 美女撒尿一区二区三区| 成人资源在线| 日韩中文字幕免费在线| 国产精品国产成人国产三级| 精品人妻一区二区三区三区四区| 高清一区二区三区四区五区| 九九综合久久| www.污网站| 激情av一区二区| 性开放的欧美大片| 成人欧美一区二区三区视频| 午夜在线播放视频欧美| 日韩精品久久久久久久的张开腿让| 91麻豆精品国产91久久久资源速度 | 亚洲精品电影在线观看| 国产精成人品2018| 狠狠干视频网站| 久久青草欧美一区二区三区| 91午夜交换视频| 97久久精品人人澡人人爽缅北| 免费看成人哺乳视频网站| 日日干日日操日日射| 狠狠色香婷婷久久亚洲精品| 91精彩视频在线播放| 不卡一区二区三区四区五区| 久久久久久婷| 青娱乐国产在线视频| 亚洲人成亚洲人成在线观看| 97人人澡人人爽91综合色| 亚洲娇小娇小娇小| 欧美日韩免费看| 手机在线免费av| 亚洲精品中文字幕乱码三区不卡|