use strict; use warnings; use Data::Dumper; my %hash=("logins" => [ { '1' => 'http://www.perlmonks.com/?node_id=901658' , '2' => 'http://www.google.com' }, { '3'=> 'http://www.bksystems.co.in'}]); #prints the structure of the hash print Dumper \%hash; print "==========================\n"; # getting the length of an array and going through each index of an array for (0 .. length @{$hash{'logins'}}) { for my $key (keys%{$hash{'logins'}[$_]}) { # printing key and value print "Key: $key and Value:$hash{'logins'}[$_]{$key}\n"; } print "==========================\n" }