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)) { ... }
Thanks
2023-11-16 22:30:18 Svetlana Thank you very useful information
Оставить комментарий:
|
|