新聞中心
本文和大家重點(diǎn)討論一下Perl foreach命令的用法,Perl foreach循環(huán)中控制變量的值會(huì)被Perl自動(dòng)保存和恢復(fù)。當(dāng)循環(huán)進(jìn)行時(shí),是沒有辦法改變其值的。循環(huán)結(jié)束時(shí),變量的值會(huì)回到循環(huán)開始前,如果沒有值則為undef。

創(chuàng)新互聯(lián)主營(yíng)新會(huì)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶App定制開發(fā),新會(huì)h5小程序開發(fā)搭建,新會(huì)網(wǎng)站營(yíng)銷推廣歡迎新會(huì)等地區(qū)企業(yè)咨詢
Perl foreach用法
Perl foreach從列表(數(shù)組)的***個(gè)元素一直循環(huán)執(zhí)行到***一個(gè)元素,一次迭代一個(gè)??刂谱兞浚ū纠袨?rock)每一次迭代從列表中取出一個(gè)新值。***次為“bedrock”,第三次為“l(fā)ava”??刂谱兞坎皇沁@些列表元素中的一個(gè)拷貝而是這些元素本身。也就是說,如果在循環(huán)中修改這個(gè)變量,那原始列表中的元素也會(huì)被修改,如下面代碼段所顯示。這條性質(zhì)是有用的,但是,如果不清楚,可能對(duì)其結(jié)果感到吃驚。
當(dāng)循環(huán)結(jié)束時(shí)$rock的值為多少呢?其值同循環(huán)開始之前相同。Perl foreach循環(huán)中控制變量的值會(huì)被Perl自動(dòng)保存和恢復(fù)。當(dāng)循環(huán)進(jìn)行時(shí),是沒有辦法改變其值的。循環(huán)結(jié)束時(shí),變量的值會(huì)回到循環(huán)開始前,如果沒有值則為undef。這意味著如果有一個(gè)變量和控制變量有相同的名字:“$rock”,不用擔(dān)心會(huì)混淆它們。
Perl中while和Perl foreach的區(qū)別
- while(defined($_=
)) - {
- print“Isaw$_”;
- }
在列表context中使用行輸入操作時(shí),則會(huì)將所有的行(剩下的)當(dāng)作一個(gè)列表,而每一行作為列表的一個(gè)元素:
- Perl foreach(
) - {
- print“Isaw$_”;
- }
同樣,行輸入操作和Perl的默認(rèn)變量$_沒有必然的聯(lián)系。在上例中,Perl foreach默認(rèn)的控制變量為$_。因此,此循環(huán)將每一行
賦給$_。
上面的看起來相似:好像有理由認(rèn)為它們的行為也是相似的,不是嗎?
它們?cè)诘讓邮呛懿幌嗤?。在while循環(huán)中,Perl讀入一行,將它賦給變量,然后進(jìn)入循環(huán)。再回到開頭,讀入下一行。但
在Perl foreach循環(huán)中,由于行輸入操作在列表的context中使用,因?yàn)镻erl foreach需要一個(gè)列表作為其參數(shù)。因此,它在循環(huán)執(zhí)行
前會(huì)將所有的輸入讀入。這種區(qū)別在讀入一個(gè)400MB的web服務(wù)器的log文件時(shí)非常明顯。通常使用while循環(huán)是一種更
好的方法,因?yàn)樗淮翁幚硪恍休斎搿?/p>
分享文章:Perlforeach用法指南
URL網(wǎng)址:http://m.fisionsoft.com.cn/article/cdpghed.html


咨詢
建站咨詢
