Perl語言學習筆記 day 1

來源:互聯網
上載者:User

標籤:perl   linux   

1、Perl

Practical Extraction and Report Language:實用摘錄與報表語言

2、多行注釋

(1) =需要頂格寫

= description

statement;

=cut

(2)末尾的description需要頂格寫

<<description;
  print "Hello,world!\n";
description

3、數字:

所有數字在Perl內都以雙精確度浮點數格式儲存;

5**3:5*5*5;

4、字串:

最短的字串為空白字串,最長的沒有限制。(Perl會專門儲存字串的長度)

單引號字串:只有單引號和反斜線可以轉義,如“\n”表示反斜線和n兩個字元,不表示分行符號

雙引號字串:支援變數插入、支援各種反斜線轉義,如“\n”表示分行符號

反斜線轉義:

\l:將下個字元轉為小寫;\L:將\E為止的字元全部轉為小寫;

\u:將下個字元轉為大寫;\U:將\E為止的字元全部轉為大寫;

\Q:將\E為止的非單詞字元加上反斜線;

\E:結束\L、\U、\Q

用英文句號“.”連接字串,如“hello”."world" = "helloworld"

字串重複操作符:x,右邊的數字(取整數)表示重複次數,例:"hello" x 3 = "hellohellohello",5x4 = “5555”

變數插入:

$word = "hello";

$words = "$word world!" = "hello world!";

如果$word後邊緊跟字元,可以採用:$words = "${word}world!";,或者$words = "$word"."world!";

5、Perl會根據需要自動在字串和數字之間進行轉換

數學計算中字串的非數字部分將會略過,如“12read32”*3 = 36;

不含數位字串轉為0;

6、警告資訊

(1)運行時使用:perl -w my_program

(2)程式中聲明:#!/usr/bin/perl -w 或者#!perl -w

(3)#!/usr/bin/perl

use warnings

(4)更加詳細,會導致程式啟動變慢:

#!/usr/bin/perl

use diagnostics

7、變數

以$開頭,區分大小寫。變數一般小寫。

8、比較操作符

==:eq、!=:ne、<:lt、>:gt、<=:le、>=:ge;

9、布爾值

數字:0為假,其他都為真

字串:Null 字元串為假,其他都為真

其他類型:轉為字串或者數字再判斷

字串‘0‘和數字0是一個值,因此為假

10、擷取使用者輸入:<STDIN>

chomp:去除字串末尾的最後一個分行符號,返回移除的字元數(0/1),例:chomp($text = <STDIN>):讀取輸入,不含分行符號;

可以一次去除列表中元素的分行符號,例:chomp(@lines)

命令列輸入的資料帶有分行符號,預設都用chmop處理一下。

11、undef:數字表示0,字串表示Null 字元串。

defined($n):判斷變數n是否定義

$n = undef:建立一個未定義的變數;

12、數組

數組中最後一個元素的下標:$#arry和-1

@:引用整個數組,例:@Rocks = qw/ bedrock slate lava/ = {"bedrock","slate","lava"}

數組名會被展開為元素列表,逐個賦值給新數組,例:@quarry = {@Rocks,"new",undef} = {"bedrock","slate","lava","new",undef}

pop和push用於運算元組最後一個元素:$num = pop(@arry) = pop @arry;  也可pop @arry,數組為空白的話pop返回undef,可以將一個數組push到另外一個數組

shift和unshift用於運算元組第一個元素,$num = shift(@arry),unshift @arry,@others

數組內容可以插入到雙引號字串中,以空格隔開,例:print "quartz @Rocks lime"   > "quartz bedrock slate lava",此處會導致電子郵件地址被誤認為數組,可以用\轉義或者用單引號。

某個變數後跟著"[",需要將"["隔開,避免被當作數組,例:print "this is $(fread)[3]"、print "this is $fread\[3]";

13、範圍操作符:...    例:(1...5) = (1,2,3,4,5)

14、qw 簡寫:qw{apple good hello} = {"apple","good","hello"} 

可以使用任何標點符號作為定界符:qw{apple good hello} = qw(apple good hello) = qw!apple good hello! = {"apple","good","hello"} 

15、列表賦值

($first,$last) = ("first name","last");

左邊變數個數小於列表值個數,多餘的值被忽略,左邊變數個數大於列表值個數,未賦值的變數是undef

16、foreach可以遍曆列表中的值,遍曆後控制變數仍然是迴圈之前的值,例:foreach $rock (@Rocks)();迴圈之後$rock還是本來的值

17、$_

Perl的預設變數,在未指定變數和數值時,使用"$_"的值。例:foreach沒有指定遍曆值時,用“$_”替代

18、reverse

按照相反的次序返回列表元素

19、sort

讀取列表的值,根據內部的編碼排序,一般為ASC|| 編碼。

不能將數字當作字串排序,否則101會在90前邊,1開頭的會排在9前邊

20、上下文

列表上下文中,產生元素的列表

標量上下文中,產生數組元素的個數

強制指定標量上下文:scalar

21、清空數組:@arry = {};

錯誤做法:@arry = undef;得到一個列表,僅有一個未定義的元素。


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.