2013-07-04 2 views
6

У меня есть хэш, значения которого в основном целые, но некоторые из них не определены. Я хотел бы установить все эти неопределенные значения в ноль, либо с помощью цикла for, либо, желательно, с более элегантным методом. Может ли кто-нибудь предложить решение?Установка значения по умолчанию для неопределенных значений хэша

+0

не беспокойтесь о «элегантном», просто напишите код, который имеет смысл для вас – ysth

+2

@ysth imho, когда OPs просят «элегантные», что означает, что он знает, как писать по-своему, но хочет узнать больше эффективный способ_. +1 для этих вопросов :) – jm666

+0

Это действительно должно быть сделано, когда ваш хэш построен в первую очередь. – Borodin

ответ

11

Оба метода используют Еогеасп, тест

for my $key (keys %hash) { 
    $hash{$key} //= 0; 

} 

$_ //= 0 for values %hash; 

//= оператора, если переменная не определена и присвоить новое значение, когда оно есть.

+0

Удивительно, спасибо! –

Смежные вопросы