Friday, October 22, 2010

Баг в коде

Допустил сегодня ошибку в коде на перле.
Долго искал. Нашёл. Ошибка детская, хотя
довольно поучительная.
Код был следующий:

my %categories;
my @fruits = qw( apple orange lemon );

#if there are any fruits in %categories
if ( @categories{@fruits} )
{  
#do something here
}
else
{ 
#do something here
}

Попробуйте сами понять, что здесь неправильно.

Ошибка в том, что в условии будет возвращаться
всегда непустой список. На место отсутствующих ключей
прийдут undef'ы.
Кстати, полезная задачка на собеседовании.

No comments:

Post a Comment