1-列表list指的是標題的有序集合, 而陣列(array)則是儲存列表的變數。
更精確地說,列表指的是資料,而陣列指的是變數。
訪問陣列中的元素
$fred[0] = "yabba";
$fred[1] = "
dabba";
$fred[2] = "
doo"
;$number = 2.71111
$fred[$number-1]; #
dabba 如果下標不是整數,會捨去小數。
$fred[145] #
如果不存在下標則返回 undef
特殊陣列索引, 獲得最後乙個元素
$rocks[0] = "one"
;$rock[99] = '
last';
$rock[$#
rock] ; #last
$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'
$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
@removed; #
qw(c,d)
@array;#
qw(a,b)
插入乙個元素
@array =qw( a b c d);@removed = splice
@array, 2, 0 ,qw(g);
@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 = reverse6..10; #
不會影響原來的陣列
sort操作符,後面再講自定義排序,,預設根據ascii碼大小排序
@numbers = sort97..102; #
100 101 102 97 98 99
each操作, 遍歷會帶索引
use5.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);"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...