my %hash = map { my $foo; $_ => { key1 => $foo = 'longstring'.$_.'more', key2 => alter( $foo ), } } @list; #### my %hash = map { my $foo = { key1 => 'longstring'.$_.'more' }; $foo->{"key2"} = alter( $foo->{"key1"} ); $_ => $foo; } @list;