Perl基礎學習02之陣列和雜湊

2021-10-23 06:18:54 字數 3061 閱讀 5824

目錄

陣列( arrays)

#陣列定義

#陣列元素連線

#陣列長度,方法一

#陣列長度,方法二

#遍歷陣列,方法一

#遍歷陣列,方法二

#陣列末尾增加元素:push

#陣列末尾刪除元素:pop

#陣列開頭增加元素:unshift

#陣列開頭刪除元素:shift

#顛倒陣列元素順序:reverse

#陣列元素排序,sort,不會修改原陣列

#從小到大排序

#數字從小到大排序,<=>兩端傳入數字

#按字元長度排序,長度相同時按數字大小排序

#可以自定義排序規則函式,sort sub_fun @array1

雜湊(hash)

#雜湊定義

#呼叫雜湊元素

#新增或更改某個鍵值對

#返回雜湊所有鍵,返回雜湊所有值

#遍歷雜湊鍵值對

#判斷雜湊是否存在某個鍵

以@開頭,類似python中列表(list),例如陣列array1表示為@array1。

例如, array1.pl

#!/usr/bin/perl

use strict;

use warnings;

my $out="test";

#陣列定義

print "#陣列元素呼叫\n";

print "$array1[0]\n";#以"$"開頭,並帶上陣列下標索引

#陣列元素連線

my $array1_join=join("\t", @array1);

print "$array1_join\n";

#陣列長度,方法一

my $len_array1=$#array1+1;#$#array1為陣列最大索引值

print "$len_array1\n";

#陣列長度,方法二

my $len_array2= scalar @array1;

print "$len_array2\n";

#遍歷陣列,方法一

foreach (@array1)

#遍歷陣列,方法二

foreach (0..$#array1)

#陣列末尾增加元素:push

my $array_push="coco";

push (@array1,$array_push);

print "@array1\n";

#陣列末尾刪除元素:pop

my $pop_v=pop @array1;

print "$pop_v\n";

print "@array1\n";

#陣列開頭增加元素:unshift

my $array_unshift="rose";

unshift (@array1,$array_unshift);

print "@array1\n";

#陣列開頭刪除元素:shift

my $shift_v=shift @array1;

print "$shift_v\n";

print "@array1\n";

#顛倒陣列元素順序:reverse

my @array2=reverse @array1;

print "@array1\n";#reverse不會修改原陣列

print "@array2\n";#reverse只會修改返回值

#陣列元素排序,sort,不會修改原陣列

my @array3=sort @array1;#預設按照ascii順序,從小到大排序

my @array4=sort @array1;#按照ascii順序從小到大排序

my @array5=sort (1, 2, 3, 4); #數字從小到大排序,<=>兩端傳入數字

my @array6=sort (1, 5, 11, 14); #按字元長度排序,長度相同時按數字大小排序

# 可以自定義排序規則函式,sort sub_fun @array1;

print "@array1\n";

print "@array3\n";

print "@array4\n";

print "@array5\n";

print "@array6\n";

以%開頭,例如雜湊hash1表示為%hash1,類似python中字典(dict),以鍵(key)值(value)對儲存資料,雜湊重要使用規則:

key必須唯一;

鍵值對在雜湊中無順序存放;

例如,hash1.pl

#!/usr/bin/perl

use strict;

use warnings;

#雜湊定義

my %hash1=("chr13"=>"t13","chr18"=>"t18","chr21"=>"t21");

#呼叫雜湊元素

print "$hash1\n";

#新增或更改某個鍵值對

$hash1="chr13+";

print "$hash1\n"; #更改

$hash1="t16";

print "$hash1\n";#新增

#返回雜湊所有鍵,返回雜湊所有值

my @k=keys %hash1;#keys函式取出所有鍵存入陣列@k

my @v=values %hash1;#values函式取出所有鍵存入陣列@v

print "@k\n";

print "@v\n";

#遍歷雜湊鍵值對

my($k1,$v1);

while(($k1,$v1)=each %hash1)

#判斷雜湊是否存在某個鍵

Perl基礎學習06之perl一行式

目錄 一行式選項 特殊字元 例1 每一行後面加空行 例2 每一行後加空行,空行除外 例3 連續輸出多個相等字元 例4 行前加空行 例5 輸出非空行 例6 移除單詞間所有空白 例7 每行單詞間連續空白壓縮為單空格 例8 原地修改拷貝 例9 所有行行號 例10 非空行行號遞增,全部輸出 例11 非空行行...

JAVA學習之陣列基礎

q 什麼是陣列?a 陣列是具有相同資料型別的一組資料的集合。例如,球類的集合 籃球,足球,羽毛球,電器的集合 電視機,洗衣機,電風扇等等,在程式設計中,都可以稱之為陣列。陣列中每個元素都具有相同的資料型別。陣列分為一維陣列和二維陣列。q 一維陣列的建立和使用 陣列作為物件,可以使用new關鍵字進行分...

Perl基礎學習04之IO及讀寫操作

目錄 perl中io操作 print say printf sprintf區別 print sayprintf sprintf perl格式化輸出 i o例項,格式化例項 perl中讀寫檔案操作 參考文獻 不自帶 n 自帶 n,必須結合use 5.010才能使用 格式化輸出字串 只格式化,無prin...