1. 程式人生 > >perl_來來來,解讀一個小程序

perl_來來來,解讀一個小程序

二次 html money cnblogs font 最後一個元素 沒有 web .html

#!/usr/bin/perl -w
#by www.yiibai.com

@array = qw(This is a list of words without interpolation);

foreach $key (@array){
   print"Key is $key\n";
}

第一:qw是什麽?

解答:簡單說,可以使用qw()準備一個數組。例如,qw(foo bar baz) 相當於 (‘foo‘, ‘bar‘, ‘baz‘)。一些程序員認為,使用qw使Perl腳本更容易閱讀。實際上,你可以使用任何分隔符,而不僅僅是括號組。

另外,在perl語言中,還有一個和qw比較像的qq,也解釋一下qq:

qq{foobar}相當於 "foobar" ;

它的的意思為雙引號字符串,可內插變量;

qw{foo bar}相當於‘foo‘,‘bar‘ ;

它的意思為用空格分解字符串,得到列表,相當於split(‘ ‘,‘foo bar‘)

字符串比較等於用 eq

q運算符對‘號轉義的方式

$someword = ‘i \‘ve some money‘; 可以等價於: $someword = q~i ‘ve some money~;

qq運算符對"號轉義的方式 $someword = "i say \"ok!\"."; 可以等價於: $someword = qq~i say "ok!".~;

qw代表用空格來分隔元素,得到列表 @list = ("perl","Regular","network","web"); 可以等價於: @list = qw(perl Regular network web);


啥事foreach?

Perlforeach從列表(數組)的第一個元素一直循環執行到最後一個元素,一次叠代一個。

foreach $key (@array){
   print"Key is $key\n";
}

控制變量(本例中為$key)每一次叠代從列表中取出一個新值。第一次為“This”,第二次為“is”,以此類推。

控制變量不是這些列表元素中的一個拷貝而是這些元素本身。

這就意味著,hiahia~也就是說我手裏的不是你的影子,而是你的真身!一旦在我手裏,我改變了你,你就真的會被改變;

如果在循環中修改這個變量,那原始列表中的元素也會被修改。

下面顯示運行結果;

在考慮一個問題,當循環結束後,$key的值是什麽?

其值和循環開始之前是一樣的。Perl foreach循環中控制變量的值會被Perl自動保存和恢復。當循環進行時,是沒有辦法改變其值的。循環結束時,變量的值會回到循環開始前,如果沒有值,則為undef。這意味著如果有一個變量和控制變量有相同的名字:“$key”,不用擔心會混淆它們。但最好不要這樣做,否則維護你代碼的人會打你。

Key is This
Key is is
Key is a
Key is list
Key is of
Key is words
Key is without
Key is interpolation

考慮這個例子,對輸入進行foreach操作:

Perl foreach(<STDIN>)  
{  
print“Isaw$_”;  
} 

在Perl foreach循環中,由於行輸入操作在列表的context中使用,因為Perl foreach需要一個列表作為其參數。

因此,它在循環執行前會將所有的輸入讀入,而每一行作為列表的一個元素:


更多信息: https://my.oschina.net/liangzi1210/blog/120789

http://www.cnblogs.com/tobecrazy/archive/2013/06/28/3161784.html

http://www.yiibai.com/perl/perl_qw.html

http://developer.51cto.com/art/201007/214100.html

http://www.cnblogs.com/chip/p/4188557.html

perl_來來來,解讀一個小程序