my %nodemetrics; my @nodelist = qw(server1 server2); my @system_attributes = qw(memory cpu disk network); # Initialise the hash with zeros foreach $node (@nodelist) { foreach (@system_attributes){ $nodemetrics{$node}{$_} = 0; } } print Dumper(\%nodemetrics); #### $VAR1 = { 'server2' => { 'network' => 0, 'memory' => 0, 'disk' => 0, 'cpu' => 0 }, 'server1' => { 'network' => 0, 'memory' => 0, 'disk' => 0, 'cpu' => 0 } }; #### $string="1024|2200|30|100"; @data = split(/\|/,$string);