use strict; use warnings; my @arr; for (0, 2, 4, 4.1, 5, -1, -5, -6) { @arr = (0,1,2,3,4); deleteA(\@arr, $_); print "Deleted $_: @arr\n"; } sub deleteA { my ($arr, $i) = @_; return if int $i > $#$arr || int $i < $#$arr * -1 - 1; splice(@$arr, $i, 1); }
I suppose you could just use splice directly, but the function takes care of things that cause splice to generate an error, like falling outside of bounds.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Delete for array:
by zentara (Cardinal) on Nov 27, 2011 at 12:42 UTC | |
by TJPride (Pilgrim) on Nov 28, 2011 at 05:21 UTC |