June 12, 2008
鼓勵此網誌:0
Perl 真的是很需要"理解"的語言,同一個功能可能會有數十種做法
這也是看別人寫的Perl 程式最痛苦的地方,最近又把學藝不精的Perl 拿出來玩
整理一些之前的筆記…
要巡覽陣列裡的每一個元素的方法
my @array=("aa","bb","cc","dd","ee");
1.
foreach $str (@array) {
print $str ."\n"
}
2.
print $array[$i] ."\n"
}
$#array ---> 能取得陣列的上標
3.
print $array[$i] ."\n"
}
scalar(@array) ---> 傳回陣列的元素數量
提到了 scalar ( ) 就順便提一下這個神奇的指令
Perl 與其它程式語言不同之處,就在它有語境(context) 的觀念,純量語境與串列語境
就像是英文語法一樣,同樣的一個字需要參照上下文來解釋
my $a=123
my @b=("a","b","c")
my %c=("key1"=>"value1","key2"=>"value2");
my $t=time()
print $a ====> 123
print @b ====> abc
print %c ====> key1value1key2value2
print localtime($t) ====> 53191112510841630
print scalar($a) ====> 123
print scalar(@b) ====> 3
print scalar(%c) ====> 2/8
print scalar(localtime($t)) ====> Thu Jun 12 11:19:53 2008
scalar( ) 能傳回純量值,手動轉換
my $cnt1 = $a ====> 123
my $cnt2 = @b ====> 3
my $cnt3 = %c ====> 2/8
my $tt =localtime($t) ====> Thu Jun 12 11:19:53 2008
這一組和上面結果是一樣的,當串列語境被指定到純量語境時,Perl自動會轉換
這也是看別人寫的Perl 程式最痛苦的地方,最近又把學藝不精的Perl 拿出來玩
整理一些之前的筆記…
要巡覽陣列裡的每一個元素的方法
my @array=("aa","bb","cc","dd","ee");
1.
foreach $str (@array) {
print $str ."\n"
}
2.
for($i=0; $i<=$#array; $i++) {print $array[$i] ."\n"
}
$#array ---> 能取得陣列的上標
3.
for($i=0; $i<scalar(@array); $i++) {print $array[$i] ."\n"
}
scalar(@array) ---> 傳回陣列的元素數量
提到了 scalar ( ) 就順便提一下這個神奇的指令
Perl 與其它程式語言不同之處,就在它有語境(context) 的觀念,純量語境與串列語境
就像是英文語法一樣,同樣的一個字需要參照上下文來解釋
my $a=123
my @b=("a","b","c")
my %c=("key1"=>"value1","key2"=>"value2");
my $t=time()
print $a ====> 123
print @b ====> abc
print %c ====> key1value1key2value2
print localtime($t) ====> 53191112510841630
print scalar($a) ====> 123
print scalar(@b) ====> 3
print scalar(%c) ====> 2/8
print scalar(localtime($t)) ====> Thu Jun 12 11:19:53 2008
scalar( ) 能傳回純量值,手動轉換
my $cnt1 = $a ====> 123
my $cnt2 = @b ====> 3
my $cnt3 = %c ====> 2/8
my $tt =localtime($t) ====> Thu Jun 12 11:19:53 2008
這一組和上面結果是一樣的,當串列語境被指定到純量語境時,Perl自動會轉換














技術(6)























































