perl 文法速查

來源:互聯網
上載者:User

標籤:

同時學perl、python和shell指令碼會很容易將它們的文法搞混,本文主要是一個個人的總結,方便要用時的查詢。

perl基本文法、安裝、協助文檔

檔案頭格式:

#!/usr/bin/perluse strict;use warnings;

運行perl指令碼:

#調用perl程式perl test.pl#可執行指令碼chmod 755 test.pl./test.pl

基本讀寫:

#鍵盤輸入$a = <STDIN>;chomp($a);print $a;#檔案輸入open(IN, "<test.txt") or die "Cannot open file:$!\n";open(OUT, ">test.txt") or die "Cannot open file:$!\n";while(<IN>){    chomp;    print OUT "1. $_";    last;};close(IN);close(OUT);

基本控制流程:

if( ){}elsif( ){}else{}
print "Hello!" if (1 == 1);  #簡寫
while( ){    $count++;}for($i; $i <= 10; $i++){}foreach (@array){    print $_;}
last;   #breaknext;   #continue

 

資料結構:標量變數($),列表(),數組(@),雜湊(%),檔案控制代碼(<>)

文法結構:語句以分號(;)結束,代碼塊使用花括弧{}劃分,動態語言不必指明變數類型

單雙引號:單引號q(),所有原樣輸出;雙引號qq(),允許插入變數

文法慣例:perl中很多地方括弧()是可由可無的,特別是內建函數,如print、split等;可以使用遞增遞減運算子

安裝:Windows裝Active版本,(perl -v)檢查;linux裝,

$ tar -zxvf stable.tar.gz -C dir$ sh Configure   # 配置$ make   # 安裝$ make test  #測試是否make成功$ make install

協助文檔:perldoc命令

perldoc  #會提示用法perldoc perl  #會顯示詳細用法perldoc perlfunc  #三大模組perldoc perlopperldoc perlfaq

建議使用瀏覽器查看本地的HTML文檔:

file:///D:/Program%20Files/Perl64/html/index.html

 

關鍵字:特殊變數

$_:預設參數,就是當前的預設巨集指令引數,在讀檔案<FILE>、迭代for (@array)、split / /、print中非常重要

$!:標準錯誤輸出,一般只與or die語句連用

$1:Regex模式中第一個括弧內的變數,如(.*)、(string),以此類推

@_:sub函數傳遞的參數數組,

 

關鍵字:字串運算子

連接字串:共置運算子(.)

轉義:反斜線\

區分標量和字串:{}顯示指定變數名,如${name}space

重複運算子(x),如“-”x 10

 

關鍵字:數組、雜湊

列表:列表是常量,由圓括弧()建立,中間用逗號隔開

# 範圍運算子@a = (1..10)@b = (1..10, 21..30)@list=(aa..zz);

建立數組:用列表()建立數組

引用數組:用方括弧[ ]下標引用數組

建立雜湊:用列表()建立雜湊,為了好看,索引值對以=>形式組織;也可以單個建立

引用雜湊:用花括弧{}引用雜湊

 

關鍵字:數組操作

 

 

 

關鍵字:(數值/字串)比較

數字比較:(==、>、<、>=、<=、!=)

字串比較:(eq、gt、lt、ge、le、ne)

 

關鍵字:print用法

print:可以直接接變數$var、@array、%hash,輸出的就是不帶空格斷行符號,將所有元素連在一起,數組一坨,雜湊一坨,其中雜湊順序是亂的。

print:可以帶雙引號,數組之間有空格,可以分辨了;雜湊失效了,沒有內容,就顯示出%hash。

print:輸出到檔案時,檔案控制代碼在前,中間是空格(不能是逗號),後面是輸出內容

 

關鍵字:q()、qq()、qw()、qx{}

q():用單引號將內容括起來

qq():用雙引號將內容括起來

qw():用單引號將空格隔開的序列組裝成數組,會屏蔽裡面的標量

# 兩者等價,最好不要有內嵌變數@a = qw(abc def ghi)  @b = (‘abc‘,‘def‘,‘ghi‘)

qx{ }:捕獲命令輸出

$directory = `dir`;$directory_2 = qx{dir};

 

關鍵字:Regex、模式

 

 

關鍵字:函數

標準函數格式:

 

關鍵字:常用內建函數

int(5.20);

length(“nose”);

lc(“ME TOO”);

uc(“hal 9000”);

cos(50);

rand(5)

 

關鍵字:堆棧操作函數

push()

pop()

shift():將最後一個元素移走,常用語處理函數參數

unshift()

 

關鍵字:命令列

 

 

關鍵字:上下文

 

 

 

關鍵字:chomp

chomp是運算子,可以用圓括弧,也可以用空格;它會改變參數變數,其傳回值是1或0

$a = "lizhiixn\n";print $a;print "next\n";chomp $a;print $a;print "next";
$b = chomp($a);  #極少這麼用

perl 文法速查

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.