Напишите это:
%hash = (
env1 => ["server=server1, port=port1", "server=server11, port=port11"],
env2 => ["server=server2, port=port2", "server=server22, port=port22"]
) ;
И затем получите доступ к таким элементам:
$hash{'env1'}->[0] == "server=server1, port=port1"
$hash{'env2'}->[1] == "server=server22, port=port22"
Это хэш, где значения являются ссылками на анонимные массивы.
Но когда я смотрю на ваши данные, я думаю, что, может быть, есть лучший способ сохранить их:
%hash = (
env1 => [{'server' => 'server1', 'port' => 'port1'}, {'server' => 'server11', 'port' => 'port11'}],
env2 => [{'server' => 'server2', 'port' => 'port2'}, {'server' => 'server22', 'port' => 'port22'}]
) ;
И затем обращаться к таким элементам:
$hash{'env1'}->[0]->{'server'} == "server1"
$hash{'env2'}->[1]->{'port'} == "port22"