主頁(yè) > 知識(shí)庫(kù) > Perl學(xué)習(xí)基本備忘錄

Perl學(xué)習(xí)基本備忘錄

熱門(mén)標(biāo)簽:惠州龍門(mén)400電話要怎么申請(qǐng) 外呼電信系統(tǒng) 智能機(jī)器人電銷(xiāo)神器 okcc外呼系統(tǒng)怎么調(diào)速度 上海企業(yè)外呼系統(tǒng) 萬(wàn)利達(dá)百貨商場(chǎng)地圖標(biāo)注 熱門(mén)電銷(xiāo)機(jī)器人 河南虛擬外呼系統(tǒng)公司 電話機(jī)器人哪里有賣(mài)

1.Perl數(shù)組(1):

1) 初始化數(shù)組 @array = ( "stringA" , "stringB" , "stringC" );
2) 使用負(fù)索引循環(huán)檢索 print $array[-1];  #輸出索引為(-1 + 3) % 3 = 2 的 stringC
3) 動(dòng)態(tài)增長(zhǎng) $array[4] = "stringD"; #雖然$array[3]還沒(méi)有使用,但在動(dòng)態(tài)賦值$array[4]的使用,已經(jīng)對(duì)$array[3]賦空置
4) 動(dòng)態(tài)增長(zhǎng)后的負(fù)索引 print $array[-1]; #輸出索引為(-1 + 5) % 5 = 4 的 stringD
5) print @array; #輸出數(shù)組中所有值的無(wú)空格串接
6) print "@array"; #輸出數(shù)組中所有值的空格分隔列表

2.Perl數(shù)組(2):

1) 數(shù)組中可以保存不同類(lèi)型的數(shù)據(jù)(字符串、數(shù)值、數(shù)組)
2) $size = @array; 該語(yǔ)句把數(shù)組@array的數(shù)組長(zhǎng)度值給標(biāo)量$size,但如果在某些函數(shù)中直接使用@array,將不一定能得到數(shù)組長(zhǎng)度
3) $#arrayname,該特殊變量保存著名為arrayname的數(shù)組的末尾索引值。
例如:  @arr = ( 1,2,3,4,5 );
則$#arr的值為4
$#arr=2;  這樣就把數(shù)組arr截?cái)?,其元?和5都被釋放,數(shù)組長(zhǎng)度值也被改變
4) @array[-1,4,7] 將分別輸出索引值為-1,4,7的元素,這樣的調(diào)用返回值不是標(biāo)量,而是數(shù)組
5) 多維數(shù)組使用多層方括號(hào)定義
@D3array = (
[ [1,2,3,4] , [5,6,7] , [8,9,0] ],
[ [ 'str1' , 'str2' , 'str3' ] , [345 , 67 , 8930] ],
[ [ 4,6,7] , [2] , [ "sud" ] ]
);

多維數(shù)組中每維的數(shù)組長(zhǎng)度不需要一致,內(nèi)部數(shù)據(jù)元素也不需要一致。
獲取第一維的數(shù)組長(zhǎng)度方式是 $size = @array;
第二維         $size = @{$array[$i]};
第三維         $size = @{$array[$i][$j]};
.......         ......
關(guān)鍵是,只要@符號(hào)后跟一個(gè)數(shù)組變量時(shí),就可以獲取其長(zhǎng)度,但超過(guò)一維時(shí),獲取數(shù)組變量的表達(dá)式要用{}包住

3.命令行執(zhí)行Perl語(yǔ)句

1)perl -e '命令語(yǔ)句'   這樣可以直接在命令行執(zhí)行Perl語(yǔ)句,不過(guò)要注意引號(hào)匹配規(guī)則。
2)perl -ne '命令語(yǔ)句'  filename 這樣可以逐行讀入filename中的數(shù)據(jù),然后對(duì)每行都以命令語(yǔ)句處理。
例如 a) perl -ne 'print;'  abc.txt
在命令行界面逐行輸出abc.txt文件的數(shù)據(jù)
b) perl -ne 'print if /^192/ ' /etc/hosts > ~/hosts.tmp
把UNIX like系統(tǒng)中主機(jī)解釋文件的內(nèi)容逐條寫(xiě)到~/hosts.tmp文件下,不過(guò)只有符合以192開(kāi)頭的行,才會(huì)被寫(xiě)入,因?yàn)檎Z(yǔ)句會(huì)執(zhí)行篩選

3)'OS命令' | perl -ne '命令語(yǔ)句'  這樣可以把之前執(zhí)行的OS命令的輸出作為輸入流,重定向到后面執(zhí)行的perl命令中。
例如 a) ls -al | perl -ne 'print;'
把當(dāng)前目錄下所有子文件、子目錄列出,并作為輸入數(shù)據(jù)輸入到perl命令中,再逐條打印

4.Perl引號(hào)規(guī)則

1)雙引號(hào)中的內(nèi)容允許轉(zhuǎn)義和變量解析,縮寫(xiě)是qq/內(nèi)容/
2)單引號(hào)中的任何字符都不會(huì)被轉(zhuǎn)義和變量不會(huì)被解析,縮寫(xiě)是q/內(nèi)容/
3)反引號(hào)中的內(nèi)容如果出現(xiàn)OS命令,該命令會(huì)被執(zhí)行,并且結(jié)果數(shù)組會(huì)替換命令位置,或作為賦值的數(shù)據(jù),縮寫(xiě)是qx/內(nèi)容/
4)上述縮寫(xiě)中,符號(hào)對(duì)/內(nèi)容/可以用其他符號(hào)替代,效果相同,例如qq(內(nèi)容),qx!內(nèi)容!,q+內(nèi)容+等等,但字母好像不可以

5.here文檔規(guī)則

1)起始標(biāo)簽沒(méi)有使用任何引號(hào)。對(duì)文檔內(nèi)容的效果等同于使用了雙引號(hào)。
2)起始標(biāo)簽使用了單引號(hào)。對(duì)文檔內(nèi)容的效果等同于使用了單引號(hào)。
3)起始標(biāo)簽使用了反引號(hào)。對(duì)文檔內(nèi)容的效果等同于使用了反引號(hào)。

6.變量初始化

Perl中的變量在第一次出現(xiàn)時(shí)被分配內(nèi)存。如果沒(méi)有顯式初始化,則會(huì)被賦值為0或者空字符串,具體怎樣表現(xiàn)要視乎該變量出現(xiàn)的上下文。
使用defined函數(shù),defined $var 可以檢查變量是否已經(jīng)被初始化。
使用undef函數(shù),undef $var 可以釋放變量的內(nèi)容。

7.特殊變量

1)$_, 該變量的值經(jīng)常作為默認(rèn)參數(shù)值,例如這樣調(diào)用 print; 不給予任何參數(shù),則會(huì)打印出$_的值;當(dāng)使用文件句柄讀入數(shù)據(jù)時(shí),若不指定使用什么變量保存讀入數(shù)據(jù),也會(huì)讀入到$_中。

8.Hash
1)Hash表定義語(yǔ)法:
 %aHash = (
  'key1'  => "value1",
  "key2" => 'value2',
    "key3" => 123,
    456 => "890"
) ;

2)Hash表中的鍵值可以是數(shù)字、字符串、數(shù)組甚至另一個(gè)hash表,不過(guò)如果要采用非字符串鍵值,則最好以單個(gè)鍵/值對(duì)賦值的形式插入到hash表中,而不是在初始化時(shí)插入。

3)對(duì)1)中的hash表,可以使用以下操作使用hash slice:

復(fù)制代碼 代碼如下:

a) @aValues = qw ( 123 456 789 0 );
@aHash{'newKey1' , 'newKey2' , 'newKey3' , 'newKey4'} = @aValues;

通過(guò)這樣的方式,可以創(chuàng)建新的hash表,如果名字相同(除了起始的%變?yōu)锧),則會(huì)在原有的hash表中插入,而非創(chuàng)建。

b)對(duì)3)中修改后的aHash,可以采用以下方式獲取其值集合的子集:

復(fù)制代碼 代碼如下:

@subSet = @aHash{ 'newKey1' , 'key1' , 456 };

@subSet數(shù)組中保存元素的順序?yàn)橘x值時(shí)指定鍵的順序。
其中 @hash表名 這種使用方式,稱(chēng)為hash slice。

9.數(shù)組HASH嵌套

復(fù)制代碼 代碼如下:

%aHash = (
   "key1" => "value1",
   "key2" => [
         "str1",[ 1,2,3,4,5 ],
     {
              "key2.1" => "value2.1";
              "key2.2" => "value2.2";
     }
         ],
       "key3" => {
             "key3.1" => "value3.1",
             "key3.2" => "value3.2",
        },
);
print "$aHash{'key2'}->[1][3]\n" ; 輸出4
print "$aHash{'key2'}->[2]->{'key2.1'}\n"; 輸出value2.1
print "$aHash{'key3'}->{'key3.2'}\n"; 輸出value3.2

上述調(diào)用中->符號(hào)可以省略。

10.操作符上下文
1)當(dāng)操作符的上下文是數(shù)值時(shí),操作數(shù)中的開(kāi)頭空格會(huì)被跳過(guò),直接找到操作數(shù)中第一個(gè)數(shù)字,而隨后的字符串也會(huì)被跳過(guò)。若操作數(shù)的起始字符串不是空格也不是數(shù)字,則該操作數(shù)被解析為0。一個(gè)例外是當(dāng)操作數(shù)的形式為科學(xué)記數(shù)格式時(shí),會(huì)被作為一個(gè)整體解釋。

復(fù)制代碼 代碼如下:

$str1 = "  5  594asd";
$str2 = "10";
$str3 = "asd 10";
$str4 = "  4e3 asiddfi";
$sum = $str1 + $str2 + $str3 + $str4;  # $sum的值為4015 , 5 + 10 + 0 + 4000

2)當(dāng)操作符的上下文是字符串時(shí),所有操作數(shù)都被解析成字符串。

11.邏輯操作符解析
Perl的各個(gè)邏輯操作符都可以理解成短路的,即一旦得出有效結(jié)果,就不會(huì)繼續(xù)解析后面的表達(dá)式;并且返回最后一個(gè)解析的邏輯表達(dá)式的解析值,除了異或運(yùn)算符。

標(biāo)簽:淮安 綿陽(yáng) 綏化 合肥 秦皇島 周口 百色 周口

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Perl學(xué)習(xí)基本備忘錄》,本文關(guān)鍵詞  Perl,學(xué)習(xí),基本,備忘錄,Perl,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Perl學(xué)習(xí)基本備忘錄》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Perl學(xué)習(xí)基本備忘錄的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章