麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Perl > 正文

Perl列表和數組變量的概念

2020-02-23 19:47:57
字體:
來源:轉載
供稿:網友

一、列表
??列表是包含在括號里的一序列的值,可以為任何數值,也可為空,如:(1,?5.3?,?"hello"?,?2),空列表:()。
??注:只含有一個數值的列表(如:(43.2)?)與該數值本身(即:43.2?)是不同的,但它們可以互相轉化或賦值。
??列表例:
????(17,?$var,?"a?string")
????(17,?26? ????(17,?$var1?+?$var2)
????($value,?"The?answer?is?$value")
二、數組--列表的存貯?
??列表存貯于數組變量中,與簡單變量不同,數組變量以字符"@"打頭,如:
????@array?=?(1,?2,?3);
??注:
?(1)數組變量創建時初始值為空列表:()。
?(2)因為PERL用@和$來區分數組變量和簡單變量,所以同一個名字可以同時用于數組變量和簡單變量,如:
????$var?=?1;
????@var?=?(11,?27.1?,?"a?string");
??但這樣很容易混淆,故不推薦。
1、數組的存取?
??.對數組中的值通過下標存取,第一個元素下標為0。試圖訪問不存在的數組元素,則結果為NULL,但如果給超出數組大小的元素賦值,則數組自動增長,原來沒有的元素值為NULL。如:
????@array?=?(1,?2,?3,?4);
????$scalar?=?$array[0];
????$array[3]?=?5;?#?now?@array?is?(1,2,3,5)
????$scalar?=?$array[4];?#?now?$scalar?=?null;
????$array[6]?=?17;?#?now?@array?is?(1,2,3,5,"","",17)
??.數組間拷貝
????@result?=?@original;?
??.用數組給列表賦值
????@list1?=?(2,?3,?4);
????@list2?=?(1,?@list1,?5);?#?@list2?=?(1,?2,?3,?4,?5)
??.數組對簡單變量的賦值
????(1)?@array?=?(5,?7,?11);
????($var1,?$var2)?=?@array;?#?$var1?=?5,?$var2?=?7,?11被忽略
????(2)?@array?=?(5,?7);
????($var1,?$var2,?$var3)?=?@array;?#?$var1?=?5,?$var2?=?7,?$var3?=""?(null)
??.從標準輸入(STDIN)給變量賦值
????$var?=?;
????@array?=?;?#?^D為結束輸入的符號
2?、字符串中的方括號和變量替換?
????"$var[0]"?為數組@var的第一個元素。
????"$var/[0]"?將字符"["轉義,等價于"$var".?"[0]",$var被變量替換,[0]保持不變。
????"${var}[0]"?亦等價于"$var"?."[0]"。
????"$/{var}"則取消了大括號的變量替換功能,包含文字:${var}.
3、列表范圍:?
????(1..10)?=?(1,?2,?3,?4,?5,?6,?7,?8,?9,?10)
????(2,?5..7,?11)?=?(2,?5,?6,?7,?11)
????(3..3)?=?(3)
??.用于實數
????(2.1..5.3)?=?(2.1,?3.1?,4.1,?5.1)
????(4.5..1.6)?=?()
??.用于字符串
????("aaa".."aad")?=?("aaa","aab",?"aac",?"aad")
????@day_of_month?=?("01".."31")
??.可包含變量或表達式
????($var1..$var2+5)
??.小技巧:
????$fred?=?"Fred";
????print?(("Hello,?"?.?$fred?.?"!/n")?x?2);?
??其結果為:
????Hello,?Fred!
????Hello,?Fred!?
4、數組的輸出:?
(1)?@array?=?(1,?2,?3);
????print?(@array,?"/n");
??結果為:
????123
(2)?@array?=?(1,?2,?3);
????print?("@array/n");
??結果為:
????1?2?3
5、列表/數組的長度?
??當數組變量出現在預期簡單變量出現的地方,則PERL解釋器取其長度。
????@array?=?(1,?2,?3);
????$scalar?=?@array;?#?$scalar?=?3,即@array的長度
????($scalar)?=?@array;?#?$scalar?=?1,即@array第一個元素的值
??注:以數組的長度為循環次數可如下編程:
????$count?=?1;
????while?($count? ????print?("element?$count:?$array[$count-1]/n");
????$count++;
????}
6、子數組?
????@array?=?(1,?2,?3,?4,?5);
????@subarray?=?@array[0,1];?#?@subarray?=?(1,?2)
????@subarray2?=?@array[1..3];?#?@subarray2?=?(2,3,4)
????@array[0,1]?=?("string",?46);?#?@array?=("string",46,3,4,5)?now?
????@array[0..3]?=?(11,?22,?33,?44);?#?@array?=?(11,22,33,44,5)?now
????@array[1,2,3]?=?@array[3,2,4];?#?@array?=?(11,44,33,5,5)?now
????@array[0..2]?=?@array[3,4];?#?@array?=?(5,5,"",5,5)?now
??可以用子數組形式來交換元素:
????@array[1,2]?=?@array[2,1];
7、有關數組的庫函數?
(1)sort--按字符順序排序
????@array?=?("this",?"is",?"a","test");
????@array2?=?sort(@array);?#?@array2?=?("a","is",?"test",?"this")
????@array?=?(70,?100,?8);
????@array?=?sort(@array);?#?@array?=?(100,?70,?8)?now
(?2)reverse--反轉數組
????@array2?=?reverse(@array);
????@array2?=?reverse?sort?(@array);
(3)chop--數組去尾
????chop的意義是去掉STDIN(鍵盤)輸入字符串時最后一個字符--換行符。而如果它作用到數組上,則將數組中每一個元素都做如此處理。
????@list?=?("rabbit",?"12345","quartz");
????chop?(@list);?#?@list?=?("rabbi",?"1234","quart")?now
(?4)join/split--連接/拆分
????join的第一個參數是連接所用的中間字符,其余則為待連接的字符數組。
????$string?=?join("?",?"this",?"is","a",?"string");?#?結果為"this?is?a?string"
????@list?=?("words","and");
????$string?=?join("::",?@list,?"colons");?#結果為"words::and::colons"
????@array?=?split(/::/,$string);?#?@array?=?("words","and",?"colons")?now

以上就是關于Perl數組變量和列表的概念,感謝大家的閱讀,更多內容請關注武林技術頻道網站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 黄色特级视频 | 九九热九九热 | 久久毛片免费观看 | 在线看免电影网站 | 亚洲一区二区国产 | 最新黄色电影网站 | 91精品国产乱码久久久久久久久 | 国产一区日韩一区 | 国产青草网 | 99热1| 国产精品爱久久久久久久 | 黄色网址免费进入 | 日韩黄色片在线观看 | 毛片免费在线 | 一级黄色毛片免费 | 99视频在线观看视频 | 毛片一区二区三区 | 欧美成人午夜一区二区三区 | 好吊色欧美一区二区三区四区 | 黄色av网站在线观看 | 天天草夜夜骑 | 亚洲一区二区三区四区精品 | 欧美a视频在线观看 | 国产欧美在线观看不卡一 | 国产精品久久国产精麻豆96堂 | 亚洲人成中文字幕在线观看 | 密室逃脱第一季免费观看完整在线 | 国产小视频一区 | 国产成人高潮免费观看精品 | 国产1区2 | 欧美一区二区三区不卡免费观看 | 黄色一级片在线观看 | 99精品国产一区二区三区 | 久久久久女人精品毛片九一 | 免费一级毛片在线播放视频老 | 免费黄色在线电影 | 成人午夜免费看 | 久久艹精品 | 国产一区二区三区网站 | 国产精品视频导航 | 国产精品一区二区三区在线 |