#!C:/Perl/bin/perl.exe use strict; use warnings; use Data::Dumper; my %Services = ( 1 => { serviceid => "1", name => "servicea", host => [ qw(hosta hostb)], }, 2 => { serviceid => "2", name => "serviceb", host => [ qw(hostc) ], }, ); print Dumper \%Services; my $service = 1; my @hosts = @{$Services{$service}{host}}; print "@hosts";