in reply to Simple Hash problem

You forgot a bunch of commas.

Golfing:
$new{$_}=defined$old{$_}?$old{$_}:999 for@mips
If there are no 0 values:
$new{$_}=$old{$_}||999 for@mips
The first, but perl6 (I think):
$new{$_}=$old{$_}//999 for@mips

The first one written in a more readable way:
for (@mips) { $new{$_} = defined($old{$_}) ? $old{$_} : 999; }


Another approach:
%new=map{($_,defined$old{$_}?$old{$_}:999}@mips
If 0 may be 999:
%new=map{($_,$old{$_}||999)}@mips
Another perl6 try:
%new=map{($_,$old{$_}//999)}@mips

Again, the first of this approach written in a readable manner:
%new = map { ($_ => defined($old{$_}) ? $old{$_} : 999) } @mips;



Good luck.

2;0 juerd@ouranos:~$ perl -e'undef christmas' Segmentation fault 2;139 juerd@ouranos:~$