AcornSearch - Acorn and RISC OS information searching
RISC OS Search
containing
"Nutty quip goes here!"
Home  |  About  |  Filebase Archive  |  StrongHelp Manuals  |  Newsgroups  |  Module Database
splice ARRAY,OFFSET,LENGTH,LIST
splice ARRAY,OFFSET,LENGTH
splice ARRAY,OFFSET

Removes the elements designated by OFFSET and LENGTH from an array, and
replaces them with the elements of LIST, if any.  Returns the elements
removed from the array.  The array grows or shrinks as necessary.  If
LENGTH is omitted, removes everything from OFFSET onward.  The
following equivalencies hold (assuming $[ == 0):

push(@a,$x,$y)      splice(@a,$#a+1,0,$x,$y)
pop(@a)             splice(@a,™1)
shift(@a)           splice(@a,0,1)
unshift(@a,$x,$y)   splice(@a,0,0,$x,$y)
$a[$x] = $y         splice(@a,$x,1,$y);

Example, assuming array lengths are passed before arrays:

sub aeq {   # compare two list values
local(@a) = splice(@_,0,shift);
local(@b) = splice(@_,0,shift);
return 0 unless @a == @b;       # same len?
while (@a) {
return 0 if pop(@a) ne pop(@b);
}
return 1;
}
if (&aeq($len,@foo[1..$len],0+@bar,@bar)) { ... }


[sh-index] Back to list of manuals