#! perl use strict; use warnings; use Data::Dump; my $hashref = { Inventory => { lb => 'abc', host => [ { hostA => { os => 'Linux', location => 'Dublin' } }, { hostB => { os => 'Windows', location => 'US' } }, { hostC => { os => 'Ubuntu', location => 'Germany' } }, ], }, }; # Question 1 my @hosts = map { (keys %$_)[0] } @{ $hashref->{Inventory}{host} }; dd \@hosts; # Question 2 push @{ $hashref->{Inventory}{host} }, { hostD => { os => 'Unix', location => 'France' } }; dd $hashref;