perl語言入門總結 第3章 列表與陣列

2022-02-14 08:23:32 字數 3437 閱讀 6432

1-列表list指的是標題的有序集合, 而陣列(array)則是儲存列表的變數。 

更精確地說,列表指的是資料,而陣列指的是變數。 

訪問陣列中的元素

$fred[0] = "

yabba";

$fred[1] = "

dabba";

$fred[2] = "

doo"

;$number = 2.71111

;print

$fred[$number-1]; #

dabba 如果下標不是整數,會捨去小數。

print

$fred[145] #

如果不存在下標則返回 undef

特殊陣列索引, 獲得最後乙個元素

$rocks[0] = "

one"

;$rock[99] = '

last';

print

$rock[$#

rock] ; #last

print

$rock[-1]; #

last

列表直接量

(1,2,3)  (1,2,3,)  ("

friend

",11) () (1..100)(

1.7..5.7) (5..1)空列表 (0,2..6,10,12)(

"fred

", "

barrbey

"m "

wilma

")

qw簡寫

qw(fred barrbey wilma)

qw允許使用任何標點符號作為定界符。

qw/ fred barney betty /   #可以用反斜槓\轉義定義符

列表的賦值

($fred, $barney, $dino) = ('

a', '

b','c'

);print

$barney; #

結果為b

($a,$b)=($b,$a); #

a,b兩個變數值交換

陣列變數賦值及簡寫

($rocks[0], $rocks[1], $rocks[2]) = qw/a b c/;

@rocks = qw/a b c/; #

上面方法的簡寫

陣列操作

@a =qw/a b/;

@b =(@a, "

c", '

d'); #

a,b,c,d

pop與push操作, 操作的是最右端

@array = 5..8

;$array1 = pop(@array); #

會從array中移除最後一元素元素8,返回8

push

@array, 100; #

向後加100

shift和unshift操作符, 操作的是最左端

@array = qw#

a b c d #;

$m = shift(@array); #

@array值為(b,c,d)

unshift(@array, 100); #

向前加入100即(100,b,c,d)

splice操作符, 一共4個引數,2個可選引數, 次序為(目錄@array,起如位置,元素的長度,要插入的@array)

@array =qw( a b c d);

@removed = splice

@array, 2

; print

@removed; #

qw(c,d)

print

@array;#

qw(a,b)

插入乙個元素

@array =qw( a b c d);

@removed = splice

@array, 2, 0 ,qw(g);

print

@array;#

qw(a,b,g,c,d) 刪除0個,然後在2個位置插入g,

foreach使用, 如何在foreach中使用,不會改變foreach那個物件的值

foreach

$rock (qw/a b c d/)

最喜歡用的預設變數 $_  , 下面例子會列印從1到100的數值

foreach (1..100

)

reverse操作符, 反序

@newone = reverse

6..10; #

不會影響原來的陣列

sort操作符,後面再講自定義排序,,預設根據ascii碼大小排序

@numbers = sort

97..102; #

100 101 102 97 98 99

each操作, 遍歷會帶索引

use

5.0.12;my

@rocks = qw/a b c d/;

while (my($index, $value) = each

@rocks

)

標題上下文與列表上下文(重點)

@people =qw(d a b c);

@sorted = sort

@people; #

結果為 qw(a,b,c,d)

$number = 42 + @people; #

結果為46

#普通運算子

@list = @people; #

得到4個人的列表

$n = @people; #

得到人數3

標題表示式

$fred = something; #

標題上下文

@pebbles = something; #

列表上下文

($wilma, $betty) = something; #

列表上下文

($dino) = something; #

還是列表上下文

@fred= 6*7; #

得到僅有單個元素的列表(42)

@barney = "

hello

".''."

world

"; #

("hello world")

強制指定標量上下文

@rocks =qw(a b c d);

print

"num is

".scalar

@rocks; #

num is 4

列表上下文的stdin

@lines = ;

chomp(@lines); #去掉所有換行符

perl語言入門總結 第2章

what steak print fred ate n s.n 布林值如果是數字0為假,如果是空字串 為假,如果即不是數字也不是字串,那就先轉成數字或字串再行判斷。字串 0 也為假 獲取使用者輸入 line 去除最右邊換行 text a line n chomp text print text un...

perl語言入門總結 第4章 子程式

子程式定義和返回值 sub sum a 1 b 33 s 34 呼叫子程式 子程式中的引數,引數固定 下面例子只能2引數 程式第乙個引數為 0 第二個為 1 依次類推 sub max else n max 10,15 結果為15 子程式中私有變數 sub max 限制引數長度 sub max 變長引...

Perl語言總結 3

1.2.4 複雜資料結構 wife leah rachel bilhah zilpah 錯誤 wife leah rachel bilhah zilpah 正確 用 中括弧來將乙個列表轉換成乙個標量。wife 0 leah rachel bilhah zilpah 正確 wife leah rach...