in reply to Initializing a hash using a foreach loop
$ServerStatus{ $Ip[$i] } = [ $Names[$i], "unknown" ];
You can also use map and one assignment instead of foreach:
%ServerStatus = map { $Ip[$i] => [ $Names[$i], "unknown"] } 0 .. $#Ip;