How to print the contents of a hash? Let us see in this article the different options to print a hash.
1. Using foreach and keys:
#!/usr/bin/perl use warnings; use strict; $\="\n"; my %h1=(Jan => 31, Feb => 28, Mar => 31); foreach my $key (keys%h1) { print "$key => $h1{$key} "; }Using the keys function, the keys are generated and processed in a loop. In every iteration, the key and its corresponding value is printed using the $key variable which holds the key.
On running this program, it gives:
Mar => 31 Feb => 28 Jan => 312. Without using temporary variable:
my %h1=(Jan => 31, Feb => 28, Mar => 31); foreach (keys%h1) { print "$_ => $h1{$_} "; }The foreach can also be written without the temprary variable. In this case, Perl will assign the key to the Perl Special variable, $_ .
3. Using the each function:
my %h1=(Jan => 31, Feb => 28, Mar => 31); while (my ($k,$v)=each%h1) { print "$k => $v "; }each is a Perl built-in function which gives a key-value pair for a given hash which are collected in the variables $k and $v. The while loop is run till all the key-value pairs are processsed after which each cannot retrieve any more.
4. Using the each function in scalar context:
my %h1=(Jan => 31, Feb => 28, Mar => 31); while (my $k=each%h1) { print "$k => $h1{$k} "; }each function returns value depending on the context. If the values is collected in list context, returns key-value pair, else returns key alone in scalar context.
5. Using the Dumper function:
use Data::Dumper; my %h1=(Jan => 31, Feb => 28, Mar => 31); print Dumper \%h1;The output printed for the above will be :
$VAR1 = { 'Mar' => 31, 'Feb' => 28, 'Jan' => 31 };Dumper function is one of the most important functions in Perl to print array, hashes, references, etc. Dumper prints the entire stuff in a properly structured format which makes it easily understandable. The point to be noted is that the reference should be provided to the Dumper function always.
No comments:
Post a Comment