Perl 雜湊陣列

我們已經在前面的部分中瞭解了標量和陣列。

標量究竟做了什麼?它只儲存整數和字串。

陣列到底是做什麼的?它是一組標量,你可以使用索引訪問陣列的每個元素。但是,當你有成百上千的記錄時,使用陣列是個好的選擇嗎?我們會忘記哪個索引對應的哪個數值。為了克服這種情況,我們有像 perl hash 這樣的東西。

什麼是雜湊陣列?

雜湊陣列可以容納陣列也可以容納的標量。唯一的區別是我們沒有任何索引,而是我們有鍵和值。宣告雜湊陣列,以 % 開頭,後跟雜湊陣列的名稱。讓我們看一個例子,我們如何定義 Perl 雜湊陣列以及如何將它與陣列區分開來

考慮三個人的例子,他們的年齡以陣列表示。

@array=('Sainath',23,'Krishna',24,'Shruthi',25);        #This is how an array looks.

print @array;

輸出:

Sainath33Krishna24Shruthi25

這樣就很難了解每個人的年齡,因為我們需要記住所有人的姓名和年齡的索引位置。如果你有 3 個名字,但是當你有 1000 個或更多時呢?不再那麼簡單了。

我們可以使用雜湊陣列來克服這個問題。

雜湊陣列示例:

print %hash=( 'Sainath' => 23, 'Krishna' => 24, 'Shruthi' => 25); # This is how we create a hash.

print %hash=('Sainath',23,'Krishna',24,'Shruthi',25);# This way of assigning is called list.

輸出:

Sainath33Krishna24Shruthi25Sainath33Krishna24Shruthi2

我們現在宣告瞭一個雜湊陣列,但是我們如何訪問或列印它?應使用其關聯鍵訪問雜湊陣列中的每個元素,併為其分配值。因此,雜湊陣列中的每個鍵和值之間存在一對一的對映。

為了列印任何人的年齡,你只需要記住該人的姓名。

print $hash{'Krishna'};          # This how we should access a hash. Key enclosed within {}.

你可能想知道為什麼我使用 $hash {KeyName},記住雜湊陣列是一個標量集合。因此,我們可以使用表示標量的$來訪問每個雜湊陣列元素。

注意:雜湊陣列中的每個 Key 都應該是唯一的,否則它將覆蓋你之前分配的值。

我們也可以列印整個雜湊陣列。

%hash=( 'Tom' => 23);

%newHash=%hash; # Assigning hash to a new hashprint %newHash; 

print %newHash;

輸出:

Tom23

新增 Perl 雜湊陣列

如你所見,我們已經有一個雜湊陣列 %newHash,現在我們需要新增更多的條目。

$newHash{'Jim'}=25;

$newHash{'John'}=26;

$newHash{'Harry'}=27;

print %newHash;

輸出:

Jim25John26Harry27

Perl 刪除鍵

你可能希望從雜湊陣列中刪除條目。這就是我們如何做到這一點。

delete $newHash{'Jim'};#This will delete an entry from the hash.

delete 是 Perl 的內建函式。

在這裡,我們將看到一個為陣列分配雜湊陣列的示例。

@array=%newHash;

print "@array";

注意:每當你列印雜湊陣列或將雜湊陣列儲存到陣列中時,順序可能是不同的。

我們只能將雜湊陣列的鍵或值分配給陣列。

@arraykeys= keys(%newHash);

@arrayvalues=values(%newHash);

print "@arraykeys\n";

print "@arrayvalues\n";    # \n to print new line.      

要刪除雜湊陣列中的所有條目,我們可以直接將雜湊陣列值分配給 null。

%newHash =(); 這將重新定義它為沒有條目的雜湊陣列。