in reply to how to rm an element from an array?
I'd suggest a different call sequence for "yoink()":
The sub definition could go something like this, if you don't mind making a copy of the array in order to do the work:yoink( \@arr, $var ); # pass an array ref and a scalar
The "yoink" could also use the "splice" function (see perldoc -f splice) to edit the array in place; I suspect the "optimal" choice would depend on array size and number of elements being removed -- with big arrays, doing just a few edits will go best with splice, but doing lots of edits might go quicker using selective copying to a separate array. (For small arrays, there won't be a noticeable difference.)sub yoink { my ($arr_ref, $kill_pattern) = @_; my @out_arr; for (@$arr_ref) { push @out_arr, $_ unless (/^$kill_pattern$/) } @$arr_ref = @out_arr; }
update: IO's solution is better than mine, of course. (I just forgot that I should've known better...)
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: how to rm an element from an array?
by atcroft (Abbot) on Oct 28, 2002 at 03:12 UTC | |
by blokhead (Monsignor) on Oct 28, 2002 at 03:52 UTC | |
by tobyink (Canon) on Feb 27, 2020 at 23:30 UTC |
In Section
Seekers of Perl Wisdom