in reply to Initializing a hash using a foreach loop

%ServerStuatus = ( "$Ip[$i]" => ["$Names[$i]", "unknown"] );

That line reinitializes the hash every time.

$ServerStuatus{"$Ip[$i]"} = ["$Names[$i]", "unknown"];
should do what you want.

Being right, does not endow the right to be rude; politeness costs nothing.
Being unknowing, is not the same as being stupid.
Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.