splice

Синтаксис

splice ARRAY, OFFSET, LENGTH, LIST
splice ARRAY, OFFSET, LENGTH
splice ARRAY, OFFSET

Описание

Удаляет элементы массива со смещением относительно начала OFFSET общим количеством LENGTH и помещает на их место элементы из LIST, если таковые указаны. Возвращает количество элементов, удаленных из массива. Массив, по мере необходимости, автоматически расширяется или сжимается. Если аргумент LENGTH не указан, из массива удаляются все элементы, начиная с OFFSET и до конца. Использование функции splice в целом эквивалентно следующим конструкциям (предположим, что $[ == 0):
push( @a, $x, $y)			splice(@a, $#a+l, 0, $x, $y)
рор(@а)					splice(@a, -1)
shift(@a)				splice(@a, 0, l)
unshift(@a, $x, $y)			splice(@a, 0, 0, $x, $y)
$a[$x] = $y				splice(@a, $x, 1, $y);
А вот пример использования этой функции. Мы будем полагать, что перед массивами в подпрограмму передаются их длины.
sub aeq  { # сравнение двух списков
  local(@a) = splice(@_, 0, shift);
  local(@b) = splice(@_, 0, shift);
  return 0 unless @a == @b;          # длина одинакова?
  while (@a) {
     return 0 if pop(@a) ne pop(@b);
  }
  return 1;
}
if (&aeq($len, @foo[l..$len], 0 + @bar, @bar)) { ... }



2011-04-26 00:53:16 lykich

Thanks




Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: