Perl語言總結

 

標量  $  $cents  一個獨立的數值(數字或字串) 
數組  @  @large  一列數值,用編號做鍵字 
散列  %  %interest  一組數值,用字串做鍵字 
子過程  &  &how  一段可以調用的 Perl 代碼 
類型團  *  *struck  所有叫 struck 的東西 
$answer = 42; # 一個整數
$pi = 3.14159265 # 一個"實"數
$pet = "Camel"; # 字串
$sign = "I ove my $pet"; # 帶代換的字串
$cose = 'It cose $100'; # 不帶代換的字串
$thence = $whence; # 另一個變量的數值
$salsa = $moles * $avocados; # 一個胃化學表達式
$exit = system("vi $file"); # 一條命令的數字狀態
$cwd = `pwd`; # 從一個命令輸出的字串

數組 @varray = ("0","1","a","b","c");
     $varray[0]="0";
對象 %vobject = ("Sun" => "Sunday",
                 "Mon" => "Monday",
                 "Tue" => "Tuesday",
                 "Wed" => "Wednesday",
                 "Thu" => "Thursday",
                 "Fri" => "Friday",
                 "Sat" => "Saturday" );
     $vobject{"Sun"} = "Sunday";
     $vobject{"other"} = ["Leah", "Rachel", "Bilhah", "Zilpah"];
     $vobject{"Jacob"} = {
              "Leah"   => ["Reuben", "Simeon", "Levi", "Judah", "Issachar", "Zebulun"],
              "Rachel" => ["Joseph", "Benjamin"],
              "Bilhah" => ["Dan", "Naphtali"],
              "Zilpah" => ["Gad", "Asher"],};

open(SESAME, "filename")                # 從現存文件中讀取
open(SESAME, "<filename")               # (一樣的東西,明確地做)
open(SESAME, ">filename")               # 創建文件並寫入
open(SESAME, ">>filename")              # 附加在現存文件後面
open(SESAME, "| output-pipe-command")   # 設置一個輸出過濾器
open(SESAME, "input-pipe-command |")    # 設置一個輸入過濾器
close(SESAME)
讀行操作符 <> 來讀入一行
open(GRADES, "grades") or die "Can't open grades: $!n";
    while ($line = <GRADES>) {
     ($student, $grade) = split(" ", $line);
     $grades{$student} .= $grade . " ";
    }
等於        ==   eq   如果 $a 等於 $b 返回真 
不等於      =    ne   如果 $a 不等於 $b 返回真 
小於        <    lt   如果 $a 小於 $b 返回真 
大於        >    gt   如果 $a 大於 $b 返回真 
小於或等於  <=   le   如果 $a 不大於 $b 返回真 
比較        <=>  cmp  相等時爲 0,如果 $a 大爲 1 如果 $b 大爲 -1 
-e $a  存在      如果在 $a 中命名的文件存在則爲真 
-r $a  可讀      如果在 $a 中命名的文件可讀則爲真 
-w $a  可寫      如果在 $a 中命名的文件可寫則爲真 
-d $a  目錄      如果在 $a 中命名的文件是目錄則爲真 
-f $a  文件      如果在 $a 中命名的文件是普通文件則爲真 
-T $a  文本文件  如果在 $a 中命名的文件是文本文件則爲真

--循環控制--
if ($city eq "New York") {
}
elsif ($city eq "Chicago") {
}
else {
}
unless ($destination eq $home) { print "I'm not going home.en"; }
while (@ARGV) { process(shift @ARGV);}
foreach $user (@users) { }
foreach $key (sort keys %hash) { }
last , next (類似break,continue)
--END--

while ($line = <FILE>) {
   if ($line =~ /http:/) {
    print $line;
   }
}
=~ 符號(模式綁定操作)
在 $line 中尋找匹配正則表達式"http:",如果發現了該表達式,操作符返回真並且執行代碼段
while (<FILE>) { print if /http:/; }
缺省的變量$_


正則表達式
空白  [tnrf]  s 
詞  [a-zA-Z_0-9]  w 
數字  [0-9]  d 
+:代表 {1,},意思爲"最少一次".
*:表示 {0,},表示"零次或多次".
?:表示 {0,1},表示"零或一次".

$_="larry:JYHtPh0./NJTU:100:10:Larry Wall:/home/larry:/bin/tcsh"
print /.+:/;

並且想用 /.+:/ 來匹配“larry:”,但是因爲 + 是貪婪的,這個模式將匹配一直到 /home/larry: 爲止。因爲它儘可能多地匹配直到最後出現的一個冒號。有時候你可以使用反向的字符類來避免上邊的情況,比如使用 /[^:]+:/,表示匹配一個

print reverse sort map {lc} keys %hash;


引起構造
常用  通用  含義       替換 
' '   q//   文本字串   否 
" "   qq//  文本字串   是 
` `   qx//  執行命令   是 
()    qw//  單詞數組   否 
//    m//   模式匹配   是 
s///  s///  模式替換   是 
y///  tr/// 字符轉換   否 
" "   qr//  正則表達式 是 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章