亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > Perl > 正文

Perl語(yǔ)言編程特殊技巧

2024-09-08 23:41:18
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

perl語(yǔ)言因其能夠用較少的空間表達(dá)復(fù)雜的命令而出名,本文將探討perl語(yǔ)言是如何實(shí)現(xiàn)這些功能。

我們將從一個(gè)最簡(jiǎn)單的小程序開始,它的功能是從鍵盤輸入字符,然后將其送到控制臺(tái)。采用perl語(yǔ)言實(shí)現(xiàn),你可以會(huì)這樣寫:

while ($line = <stdin>) {

print $line;

}

一開始這一程序已十分簡(jiǎn)潔,但是它的每條語(yǔ)句是什么意思呢?簡(jiǎn)單地說(shuō),<stdin>是一個(gè)專用的文件句柄,在本例中它屬于標(biāo)準(zhǔn)輸入緩存(稱為stdin),通常是連接到鍵盤。每次我們將<stdin>的值賦給變量$line時(shí),即為將stdin緩存中的首行取出,然后放入$line。當(dāng)?shù)竭_(dá)緩存最后一行時(shí),就會(huì)取出while語(yǔ)句判斷條件為假的(eof)文件結(jié)束標(biāo)識(shí)符。程序的其它部分很簡(jiǎn)單可以這樣解釋?,F(xiàn)在我們已經(jīng)將輸入信息放入$line變量,接著我們就可以用print函數(shù)將其打印到屏幕?;蛘吒鼫?zhǔn)確地說(shuō),打印到通常連接顯示器的標(biāo)準(zhǔn)輸入緩存。標(biāo)準(zhǔn)輸入和輸出緩存都可以重定向,例如可重定向到保存程序結(jié)果的某個(gè)文件中,如果是在處理文本,那么通??梢哉J(rèn)為這與鍵盤及顯示器是等價(jià)的。

你可能會(huì)認(rèn)為這一程序已經(jīng)是最短的了,但是通過(guò)使用perl的特殊變量,它還可以更短。

默認(rèn)數(shù)據(jù)變量:$_

perl有很多特殊變量,它們?cè)诔绦蜻\(yùn)行過(guò)程中被自動(dòng)分配,可用于訪問(wèn)程序本身的一些信息,諸如程序名或者進(jìn)程id號(hào)、命令行參數(shù)、或最后一個(gè)表達(dá)式的運(yùn)算結(jié)果。這些變量中最經(jīng)常使用也可能是最有用的是$_這一默認(rèn)變量。如果你在程序中未指明,默認(rèn)變量作為某個(gè)未分配的功能變量,用于保存一些perl結(jié)構(gòu)體和函數(shù)的運(yùn)算結(jié)果。在你熟悉perl之前這可能聽起來(lái)令人費(fèi)解,但是它的功能的確很強(qiáng)大。我們可以用變量$_來(lái)取消程序中的$line變量:

while (<stdin>) {

print $_;

}

這一程序和前一個(gè)是等價(jià)的,即使在測(cè)試條件while語(yǔ)句中我們僅使用到一個(gè)文件句柄。程序?qū)⑤斎氪嫒氲侥J(rèn)變量,所以當(dāng)我們要輸出時(shí)就可以用變量$_訪問(wèn)輸入的信息。但是我們還可以把程序變得更短,記住我說(shuō)過(guò),$_是一個(gè)用于未定義的實(shí)現(xiàn)某個(gè)功能的默認(rèn)變量,這樣打印是它其中的一個(gè)功能,所以我們現(xiàn)在可以把程序這樣來(lái)寫:

while (<stdin>) {

print;

}

現(xiàn)在我們得到實(shí)現(xiàn)同樣功能的程序,但是該程序消除了所有外部變量。因?yàn)槲覀儍H僅是將stdin和stdout連在一起。如果我們能夠去掉while循環(huán)則會(huì)更好,這一循環(huán)無(wú)非是在重復(fù)的將數(shù)據(jù)從一個(gè)緩存移到另一個(gè)。這一過(guò)程也可以用下面的語(yǔ)句實(shí)現(xiàn):

print <stdin>;

這個(gè)程序的工作過(guò)程有點(diǎn)復(fù)雜。當(dāng)采用$_實(shí)現(xiàn)打印時(shí),我們是將一個(gè)變量放在另一個(gè)稱為標(biāo)量變量的情況下。簡(jiǎn)單地說(shuō)就是它將這一變量看作一個(gè)對(duì)象,比如可以是一個(gè)數(shù)或者一個(gè)字符,但并不是一個(gè)集合。打印函數(shù)也可以采用在一組標(biāo)量的方式,即將變量看作一系列對(duì)象,當(dāng)我們使用打印函數(shù)時(shí),它將輪流打印每一個(gè)。當(dāng)我們使用句柄<stdin>進(jìn)行打印時(shí),它將把標(biāo)準(zhǔn)輸入看作一個(gè)字符序列,依次打印。這和while循環(huán)實(shí)現(xiàn)一樣的功能。

這可能是一個(gè)極端的例子,但是使用一些perl編程技巧,可以將我們的程序長(zhǎng)度減少一半。

如果我們僅僅想把stdin影射到stnout,這樣做很好。但是如果我們想使我們的程序像unix中的可以打開和打印文件的cat一樣時(shí),應(yīng)該怎么做?我們可能要檢查命令行參數(shù),以確定它們是不是有效文件,然后依次打開和打印它們。但是這么一個(gè)很平常的事情,perl語(yǔ)言可以使用更簡(jiǎn)單更短的方法實(shí)現(xiàn)。

特殊的文件句柄:<>

像其它的默認(rèn)變量一樣,perl語(yǔ)言的這一寫為<>的特殊句柄可以使程序編寫更容易。這個(gè)文件句柄將所有命令行參數(shù)都看作文件名,依次打開它們。如果沒(méi)有命令行參數(shù),那么就從stdin讀入。像unix中的習(xí)慣用法per一樣,如果將“-”用作命令行參數(shù),它將會(huì)打開stdin代替一個(gè)文件。因此如果我們想編寫一個(gè)像上面提到的可以支持命令行中的文件的程序,這很簡(jiǎn)單,可以這樣寫:

print <>;

當(dāng)你考慮到perl可以僅用8條語(yǔ)句寫一個(gè)實(shí)現(xiàn)cat功能的程序時(shí),你就會(huì)明白為什么perl被認(rèn)為功能強(qiáng)大。但是如果我們想在輸入上面實(shí)現(xiàn)一些更重要的功能而不是僅僅將其寫回顯示器上,這該怎樣實(shí)現(xiàn)?

記錄行數(shù)

如果我們想單個(gè)處理每一行輸入,這時(shí)僅將文件句柄連到打印是不夠的。讓我們看一個(gè)在每行輸入上加上行號(hào)的一個(gè)小程序。

$num = 0;

while (<>) {

$num = $num + 1;

print "$numt$_";

}

在這一例子中我們使用$num變量來(lái)記錄行號(hào),每輸入一行,我們將其加一,然后將行號(hào)和輸入內(nèi)容一起輸出。當(dāng)我們?cè)谧址惺褂糜呻p引號(hào)括起的變量時(shí),這一變量名將會(huì)用它的內(nèi)容來(lái)代替,這使得perl中的格式化輸出變得輕而易舉。

僅這幾個(gè)簡(jiǎn)單的程序,我們就可以看出使用特殊變量可讓你編寫更小更快的程序。如果你感興趣,perl所有特殊變量的用法可以在perl手冊(cè)的變量部分得到。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
亚洲激情成人| 1000精品久久久久久久久| 亚州欧美精品suv| 国产亚洲免费的视频看| 中文精品99久久国产香蕉| 精品国产区一区| 欧美做爰猛烈大尺度视频| 97精品国产97久久久久久粉红| 日韩午夜av| 成人免费电影网址| 亚洲天堂2016| 伊人22222| 亚洲精品视频免费在线观看| 成人搞黄视频| 亚洲欧美高清| 爽爽爽在线观看| 93在线视频精品免费观看| 91嫩草丨国产丨精品| 99精品视频一区二区| 亚洲激情 国产| 日韩av地址| 免费吸乳羞羞网站视频| 日韩视频在线观看一区| av网在线观看| 日韩一区二区视频在线观看| 天天爽夜夜爽夜夜爽精品| 中文字幕一区二区久久人妻| 不卡大黄网站免费看| 97国产精品视频| 欧美黑人性生活视频| 久久综合久久鬼| 亚洲精品一二三四五区| h文在线观看免费| 欧美一级久久久久久久大片| 欧美亚洲福利| av在线影视| 少妇激情av一区二区三区| 久久人人爽人人爽| 国产精品综合久久久久久| 亚洲欧美成人综合| 狠狠入ady亚洲精品经典电影| 精品产国自在拍| 国产精品久一| 久久国产精品二区| 日韩有码片在线观看| 免费在线日本| 国产欧美一区二区三区在线看| 日韩色级片先锋影音| 欧美美女在线直播| 99久久久无码国产精品免费蜜柚| 在线综合+亚洲+欧美中文字幕| 亚洲成人a**址| 国产欧美精品日韩区二区麻豆天美| 国内国产精品天干天干| 欧美综合久久久| 懂色一区二区三区av片| 久久综合激情| 国产精品久久久久久精| 一区二区视频在线播放| 二区三区偷拍浴室洗澡视频| 久久精品99| 很黄很a的视频| 久久免费视频在线| 亚洲欧洲中文字幕| 天天综合网天天综合| 91高清在线观看视频| 久久久国产精品无码| 国产尤物一区二区在线| 欧美日韩激情视频在线观看| 欧美成人a交片免费看| 久久久久久久久久久97| 亚洲高清极品| 日本大臀精品| 国产黑丝在线视频| 欧美日韩国产一区在线| 国产精品扒开腿做爽爽爽男男| 热99精品里视频精品| 伊人久久av| v片在线观看| 中文字幕在线播放一区二区| 天天影院图片亚洲| 亚洲最大的av网站| 粉嫩aⅴ一区二区三区四区| 91狠狠综合久久久| 国产精品自产拍高潮在线观看| 这里只有久久精品视频| 亚洲精品视频99| 97香蕉碰碰人妻国产欧美| 日韩熟女一区二区| 国产在线精品一区二区中文| 国产日韩v精品一区二区| h片视频在线观看| 久久久久久77777| 粉嫩粉嫩芽的虎白女18在线视频| 欧美日韩第一区日日骚| av在线理伦电影| 日韩欧美三级视频| 国产精品美女无圣光视频| 极品魔鬼身材女神啪啪精品| 亚洲制服少妇| 国产一区美女在线| 国产亚洲自拍av| 成人羞羞视频在线看网址| 免费日韩av片| 天天躁日日躁狠狠躁超碰2020| 亚洲奶大毛多的老太婆| 青青草原综合久久大伊人精品优势| 国产一区二区高清不卡| 精品综合久久| 久久久久久免费视频| а天堂中文最新一区二区三区| av鲁丝一区鲁丝二区鲁丝三区| 日韩精品在线影院| 欧美特黄一级片| 日韩一区网站| 欧美日韩国产小视频在线观看| 免费黄色在线播放| 午夜三级在线观看| 91久久精品一区二区三区| 视频二区欧美| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 欧美a级在线观看| 亚洲精品一二三四| 亚洲色图校园春色| 一本色道久久88亚洲综合88| 免费看亚洲片| 亚洲国产精品久| 亚洲一区二区欧美| 四虎精品影院在线观看视频| 亚洲精品456在线播放狼人| 福利av痴女| 色播在线视频| 欧美jizz19性欧美| 深夜影院在线观看| 亚洲不卡系列| japan高清日本乱xxxxx| 精品国产31久久久久久| 久草一本av| 亚洲在线视频播放| 欧洲一级在线观看| 精品自拍偷拍视频| 中文字幕一区二区三区四区五区人| 青青草国产免费一区二区下载| 国精产品一区一区三区免费视频| 久久福利电影| 免费黄网站在线观看| 国产精品mp4| 黄色片视频在线观看| 国产四区在线观看| 国产youjizz在线| 一区二区视频播放| 久久久久久一区二区三区| 国产综合色激情| 男人天堂网在线视频| 久久久www免费人成精品| 免费福利视频一区二区三区| 成人啪啪免费看| 69亚洲乱人伦| 日韩欧美国产一区二区三区| 亚洲色图偷拍自拍| 国产伦精品一区二区三区视频网站| а√天堂8资源在线官网| 欧美区一区二| aaa人片在线| 色爱av美腿丝袜综合粉嫩av| 这里只有精品免费视频| 日韩三级电影免费观看| 韩国av中国字幕| 制服国产精品| 国产欧美精品日韩精品| 黄色综合网址| 国产精品178页| 亚洲国产美女搞黄色| 欧美人妖视频| 欧美日韩国产综合视频在线观看| 国产精品超碰97尤物18| 97人人模人人爽人人喊中文字| 国产凹凸在线观看一区二区| 国产不卡在线| 国产精品专区一| 亚洲一区二区精品3399| 欧美性猛交xxxx乱大交91| 成人激情诱惑| 国产精品久久精品国产| 夜间精品视频| 亚洲国产视频二区| 亚洲精品**不卡在线播he| 最近免费中文字幕在线第一页| 97久久超碰福利国产精品…| 动漫3d精品一区二区三区| 日韩av在线第一页| 亚洲一级免费视频| 麻豆影院在线| 亚洲色图第一区| 国产精久久久| 欧美三级电影在线看| 51自拍视频在线观看| 黄色av小说在线观看| 最近的中文字幕在线看视频| 国产不卡在线观看视频| 欧美成人精品不卡视频在线观看| 51调教丨国产调教视频| 成人美女黄网站| 国产手机精品在线| 久久91精品国产| 国产精品白嫩白嫩大学美女| 色香色香欲天天天影视综合网| 9l视频白拍9色9l视频| 久久精品三级| 成人aaaa免费全部观看| 无遮挡爽大片在线观看视频| 黄色国产精品视频| 亚洲第一图区| 国产乱码精品一区二区三区中文| 婷婷丁香一区二区三区| 2020中文字幕在线| 一区二区动漫| 国产精品男女猛烈高潮激情| 99久久精品日本一区二区免费| xxxxxx国产精品视频| 一区二区三区四区免费| 国产精品小说在线| www中文字幕在线观看| 欧美福利视频导航| 丁香婷婷综合网| 美女日批视频在线观看| 免费国产黄线在线观看视频| 2014亚洲片线观看视频免费| 国产毛片毛片毛片毛片| 久久99精品久久久久久青青91| 日本在线观看视频网站| 免费看的黄色欧美网站| 久久69成人| 欧美成人精品1314www| 香蕉视频在线观看网站| 天天堂资源网在线观看免费视频| 成人午夜激情网| 综合久久综合久久| www.成人在线观看| 亚洲动漫在线观看| 好吊色视频在线观看| 国产精品伊人久久| 在线观看国产视频| 亚洲国产精品久久久久爰性色| 1024手机在线观看你懂的| 欧美1级2级| 视频一区欧美| 国产一二三在线观看| 一区二区三区四区精品在线视频| 久久激情五月丁香伊人| 国内精品自线一区二区三区视频| 美女国产在线| 无码人妻丰满熟妇区bbbbxxxx| 国产成人久久婷婷精品流白浆| 久久久无码精品亚洲日韩按摩| 国产人妖伪娘一区91| 久久影院视频免费| 1pondo在线播放免费| 欧美激情视频一区二区三区在线播放| 99视频免费观看蜜桃视频| 欧美视频第一| 视频一区在线免费看| 国产女人18毛片水真多成人如厕| 日本高清不卡一区二区三| 亚洲AV成人无码一二三区在线| 进去里视频在线观看| 久久黄色片网站| 国产精品jizz视频| 国产精品国产三级国产| 午夜精品三级久久久有码| 亚洲黄色免费三级| 国内精彩免费自拍视频在线观看网址| 日韩欧美一区免费| 欧洲高清一区二区| 你懂的成人av| 91日韩视频| 免费影视观看网站入口| 国产麻豆精品在线| 俺来也官网欧美久久精品| 亚洲色大成网站www久久九九| 欧美少妇一区二区| 亚洲激情一二三区| 欧美日溪乱毛片| 亚洲天堂影视av| 日本一区二区三区四区在线视频| 国产精品视频中文字幕| 成人性片免费| 99热成人精品热久久66| 精品无码一区二区三区蜜臀| 日韩美女中文字幕| 色婷婷精品久久二区二区蜜臂av| 国产av天堂无码一区二区三区| 日本免费黄视频| 日韩视频久久| 国产精品亚洲欧美日韩一区在线| 欧美aaa大片视频一二区| 天天摸天天做天天爽| 成人一区二区在线| 亚洲男人天堂av在线| 亚洲精美色品网站| 午夜视频在线观看一区二区三区| 久久久伊人欧美| 91精品国产91久久久久久密臀| 国产亚洲一区字幕| 99久久精品情趣| 91吃瓜在线观看| 波多野结衣中文字幕在线| 国产精品男人爽免费视频1| 国模私拍视频在线观看| 欧美1—12sexvideos| 国产成人精品一区二区在线小狼| 欧美天天综合网| 丁香影院在线| 激情视频综合网| 日韩高清三级| 国产福利一区二区三区在线视频| 久久99国产精一区二区三区| 影音先锋中文字幕一区二区| 欧美日韩国产高清一区| 国产精品国产亚洲精品| 在线不卡av电影| 7799精品视频天天看| 日韩欧美高清在线观看| 国产调教在线观看| 污视频网址在线观看| 亚洲第一区第一页| 亚洲综合一区二区精品导航| 久久久久久久久久久久|