たぶん、 $name が純粋に 'hp' ではないんじゃないかな。
後ろにスペースが入ってるとか、改行がついてるとか、大文字小文字が違うとか。

if($name =~ /\bhp\b/i){$FORM{$name} .=$value;}
else{$FORM{$name} = $value;}

だとどう?