LINUX.ORG.RU

История изменений

Исправление gh0stwizard, (текущая версия) :

ну тут это счётчик и не индекс, а в цикле индекс но не счётчик. Как ты его назовёшь?

Сейчас у меня просто $index, $cnt :) И вообще, ты легко подменяешь понятия.

это как?

my @retval;

my @abook = (
{  Name => 'drBatty',
   Phones => {
     Home => '123',
     Work => '345'
   }
},
);

foreach my $record (@abook) {
   my $phones = $record->{Phones}; # <-- HERE

   for my $phone (values %$phones) {
      &check($phone) or die "invalid phone number";
      push @retval, $phone;
   }
}

Как-то так, написал наобум. Принцип в том, что сложные структуры в циклах, типа $hash->[$index]{$supername}{$subname} приводят к тормозам. А также просто нечитабельно и создают киллометровые строки.

Следовательно, создание индексов/счетчиков нужно производить внутри или снаружи, один раз, для одной/двух целевых структур. При этом имена внутри играют меньшую роль. И вообще, я не просил придумывать префиксы для индексов :)

Исходная версия gh0stwizard, :

ну тут это счётчик и не индекс, а в цикле индекс но не счётчик. Как ты его назовёшь?

Сейчас у меня просто $index, $cnt :) И вообще, ты легко подменяешь понятия.

это как?

my @retval;

my @abook = (
{  Name => 'drBatty',
   Phones => {
     Home => '123',
     Work => '345'
   }
},
);

foreach my $record (@abook) {
   my $phones = $record->{Phones}; # <-- HERE

   for my $phone (values %$phones) {
      &check($phone) or die "invalid phone number";
      push @retval, $phone;
   }
}

Как-то так, написал наобум. Принцип в том, что сложные структуры в циклах, типа $hash->[$index]{$supername}{$subname} приводят к тормозам. А также просто нечитабельно и создают киллометровые строки.