Hashes

Hash is an unordered set of key/value pairs. They are preceded by %.

Array elements are accessed by using it's indices. But Hashes are accessed using it's descriptive keys.

Example

%nationalGame = (Australia  Cricket
Japan  Wrestling
NewZealand  Rugby
USA  Baseball
England  Cricket);

The above code can be written like below which increases readability and differentiates keys and values.

%nationalGame = (Australia => 'Cricket',
Japan => 'Wrestling',
NewZealand => 'Rugby',
USA => 'Baseball',
England => 'Cricket');

How to get Hash value

{} are used to lookup for a hash value using it's key.

%nationalGame = (Australia=>'Cricket',
                 Japan => 'Wrestling',
                 NewZealand => 'Rugby',
                 USA => 'Baseball',
                 England => 'Cricket');

$game =$nationalGame{'Australia'}; 
print ("Australia National Game is: $game");

Check Result here

How to add key-value pair to a existing Hash

New key-value pair can be added like below to an existing hash.

%hashname{key} = value;

How to remove a key-value pair

key-value pair can be removed as shown below:

delete $hashname{key};

How to loop though hash elements

keys function can be used to get a list of keys in scalars and you can use keys function in a for loop to to iterate the hash elements.

Examples

%nationalGame = (Australia=>'Cricket',
                 Japan => 'Wrestling',
                 NewZealand => 'Rugby',
                 USA => 'Baseball',
                 England => 'Cricket');

# To add a new key-value pair
$nationalGame{'India'} = 'Hockey';

# Loop through hash elements

for(keys %nationalGame){
 print("National Game of $_ is $nationalGame{$_}\n");
}

print ("\n");
# delete a key-value pair
delete $nationalGame{'India'};

print("Hash elements after deleting India:\n");
for(keys %nationalGame){
 print("$_ : $nationalGame{$_}\n");
}

Check result here