use strict;
use warnings;
my %MasterHash;
my $line = "k1:v1 k2:v2 k3:v3"; #the space is a tab
##some part of code that writes stuff to MasterHash
....
my @array1 = split (/\t/,$line);
my ( $index )= grep { $array1[$_] =~ /v3/ } 0..$#array1;
my $mv = splice @array1, $index,1;
print "after removing: $mv\n";
my ($mvl,$mvr) = split (/:/,$mv,2);
$MasterHash{$mvr} = map { split /:/; } @array1;
print Dumper \%MasterHash;
####
$Var1 = {
'abc' => 'loaded before',
'xyz' => 'loaded before',
'v3' => 16 #basically some number
};
####
$Var1 = {
'abc' => 'loaded before',
'xyz' => 'loaded before',
'v3' => {
'k1' => 'v1',
'k2' => 'v2'
}
};