Изменение хэша в хэше в Perl - PullRequest
2 голосов
/ 21 июля 2010

Какой кратчайший объем кода для изменения хеша в хэш в следующих случаях:

%hash{'a'} = { 1 => one, 
               2 => two };

(1) Добавить новый ключ к внутреннему хешу 'a' (например: c => 4 во внутреннем хеше 'a') (2) Изменение значения во внутреннем хэше (например: измените значение 1 на «ОДИН»)

Ответы [ 2 ]

1 голос
/ 21 июля 2010

Исходя из вопроса, вы, кажется, плохо знакомы с Perl, поэтому вам стоит посмотреть на perldoc perlop среди других.

Ваши ключи %hash содержат скалярные значения, которые являются хеш-значениями. Вы можете разыменовать, используя оператор ->, например, $hashref = {foo=>42}; $hashref->{foo}. Точно так же вы можете сделать то же самое со значениями в хэше: $hash{a}->{1}. Однако когда вы объединяете индексы в цепочку, между ними есть некий синтаксический сахар для неявного ->, так что вы можете просто сделать $hash{a}{1} = 'ONE' и т. Д.

Этот вопрос , вероятно, также даст вам несколько полезных подсказок.

1 голос
/ 21 июля 2010
$hash{a}{c} = 4;

$hash{a}{1} = "ONE";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...