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


Автор: Pavlik Morozov 15.9.2002, 21:05
Привет!

Чайниковский вопрос, конечно... но....

Есть массив
@somearray

надо удалить из него переменную с индексом $i или значением $value... предпочтительно второе.... как это сделать просто и правильно... без гемора (типа создания нового массива)????

Очень надо....

Автор: Ampersand 16.9.2002, 14:47
Используй хэш, если условия задачи позволяют.

Автор: NightGoblin 27.11.2002, 14:40
Можно сделать через срезы (slices):

@somearray = (@somearray[0 .. $i - 1], @somearray[$i + 1 .. $#somearray]);

Автор: Powerhead 27.11.2002, 21:54
Переменную с индексом $i удалить так:
splice(@somearray, $i, 1);
единица в этом выражении - количество удаляемых элементов.

А чтоб $value, по моему, придётся его разыскать:

foreach (0..$#somearray){
if ($somearray[$_] == $value){
splice(@somearray, $_, 1); last;
}
}

Если нужно удалить несколько элементов, разбросанных по массиву, то задача усложняется.. Если нада - пиши.

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