Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Почему цикл foreach считает в два раза больше


Автор: Гость_Royan 14.11.2004, 16:51
Имею такой код:

Код

 my %preferences = ();

 # в @row содержатся какие-то значения
 $preferences{'uid'} = $row[0];
 $preferences{'username'} = $row[1];
 $preferences{'moderator'} = $row[2];

 # Печатаем длинну для верности
 print length(%preferences);
 foreach my $item (%preferences) {
   print "Item: $item\n";
 }


И вот что я вижу

3
Item: moderator
Item:
Item: uid
Item:
Item: username
Item:

Там где пустые строки он ключи что ли пытался вывести, под которые нужна своя переменная?

Если я прав то как прогнать массив исключительно по значениям? (ну кроме for (my $i = 0; $i < @ary1; $i++) {})

Автор: Secandr 14.11.2004, 17:36
foreach my $item (keys %preferences) {

Автор: Kiber_rat 23.12.2004, 09:48
Код

print "Item: $_\n" for values %preferences;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)