Forum Webscript.Ru
Программирование => Perl => Тема начата: =Женек= от 08 Февраля 2003, 21:14:04
-
У меня имеется кострукция:
foreach $element(@list) {
massiv[xxx]=
}
как мне приравнять ххх то есть номер в массиве
к номеру $list обрабатываемого в данной итерации.
Неохота вводить специальную переменную, и ++ ее каждый раз.
-
Неохота вводить специальную переменную
А придется :)
Оптимальным будет такой вариант:
$massiv[$_]=... for (0..$#list);
-
У меня имеется кострукция
А смысл... Индексы элементов в первом массиве известны же... У тебя там проверка какая-то еще? Чему присваивается, то?
$massiv[$_]=... for (0..$#list);
-
А не проще ли так?
$i_max=@list;
for ($i;$i=$i_max;$i++) {
$element=@list($i);
massiv[$i]=
}
Кажись так... может где что пропустил...
-
А... спасибо... Я начинающий. Знал только про foreach
А то что можно foreach заменить дипазоном от нуля до размера массива я знал, не знал только что посчитать его можно одной строкой.
А вообще для чего я это делаю:
Я пишу скрипт анализа рефереров моего сайта.
Из URL вырезается строка типа server.ru, составляется массив, в котором может быть 10 server1, 15 server2 и т.д.
А потом составляется база имен - каждый новый server из предыдущего массива сравнивается с имеющимся во втором.
Если он новый - то добавляется в массив, если уже имеется - то увеличивается счетчик.
У меня два массива. Номер URL в одном соответствует номеру
ячейки с количеством рефереров от этого URL.
А нельзя ли не нумеровать массив а давать имена ячейкам А потом приравнивать?
Т.Е после составления базы имен получается массив вида
$list{\'yandex\'} = 15. Может так будет рациональней, чем сделал я.
Может я глупости говорю, но начав изучать работу перл со строками и переменными мне его возможости кажутся безграничными..
-
массив вида $list{\'yandex\'} = 15
называется хэшем ;)Может так будет рациональней
Да.
=Женек=, в следующий раз описывай задачу полнее, а то отвечаю глупостью на глупость - аж самому обидно :)
-
2 YA
Спасибо...