in reply to Assign (key, value) to a hash w/o clobbering hash

I gave your third approach a try. I tried this:

undef %hash %hash = (%hash, split /X/ 'fooXbar'); %hash = (%hash, split /X/ 'bishXbash'); foreach(keys %hash) { print "3: $_ = $hash{$_}\n"; }

It produced:

bish = bash foo = bar