Perl foreach控制結(jié)構(gòu)中的控制變量
本文和大家重點討論一下Perl foreach用法,Perl語言中可以用Perl foreach處理整個數(shù)組或列表,并且控制變量(本例中為$rock)每一次迭代從列表中取出一個新值。
Perl foreach控制結(jié)構(gòu)中的控制變量
Perl語言中可以用Perl foreach處理整個數(shù)組或列表。Perl foreach從列表的第一個元素一直循環(huán)執(zhí)行到最后一個元素,一次迭代一個:
- Perl foreach$rock(qw{bedrockslatelava}){
 - print“Onerockis$rock.\n”;
 - }
 
控制變量(本例中為$rock)每一次迭代從列表中取出一個新值。第一次為“bedrock”,第三次為“lava”。
需要注意的是控制變量不是這些列表元素中的一個拷貝,而是這些元素本身!也就是說,如果在循環(huán)中修改這個變量,那原始列表中的元素也會被修改(當然,對于列表的修改似乎沒有什么必要,但是對于數(shù)組就不一樣了),這條性質(zhì)如果不清楚,可能對其結(jié)果感到吃驚。
- @rocks=qw{bedrockslatelava};
 - Perl foreach$rock(@rocks){
 - $rock="\t$rock";#@rocks的每一個元素前都加入一個tab
 - $rock.="\n";#每一個元素后都加入換行符
 - }
 - print"Therocksare:\n",@rocks;
 
那么當循環(huán)結(jié)束是$rock的值為多少呢?其值通循環(huán)開始之前相同!Perl foreach循環(huán)中控制變量的值會被Perl自動保存和恢復(fù),當循環(huán)進行時,是沒有辦法改變其值得,循環(huán)結(jié)束時,變量的值會回到循環(huán)開始前,如果沒有值則為undef。這意味著如果有一個變量和控制變量有相同的名字時,不用擔心會混淆他們;也就是說,我們可以用已有的變量做循環(huán)變量,而不用擔心它的值在循環(huán)中改變了。
◆Perl中最常見的默認變量
如果在Perl foreach循環(huán)中省略了控制變量,那Perl會使用其默認的變量:$_。除了其不尋常的名字外,這和普通的變量時一樣的,如下面的代碼所示:
- Perl foreach(1..10){
 - print“Icancount$_\n”;
 - }
 
 當然$_不僅僅是能用在Perl foreach中,雖然它不是Perl中唯一的默認變量,但無疑是使用最普遍的。你會看到許多例子中Perl在沒有要求它使用某個變量或值得時候,會自動使用變量$_.這將節(jié)約程序員大量的時間來思考使用哪一個變量。請看下面的例子:
$_="Yabbadabbadoo\n";
print;#打印出默認變量$_
【編輯推薦】
- Perl foreach用法解析
 - 淺析Perl正則表達式在PHP的實現(xiàn)
 - 深入解析Perl內(nèi)部函數(shù)的使用
 - 揭秘Perl變量中Perl純變量用法
 - Perl程序設(shè)計中的Perl用戶函數(shù)(子程序)
 















 
 
 
 
 
 
 