I'd suggest a different call sequence for "yoink()":
yoink( \@arr, $var ); # pass an array ref and a scalar
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:
sub yoink
{
my ($arr_ref, $kill_pattern) = @_;
my @out_arr;
for (@$arr_ref) {
push @out_arr, $_ unless (/^$kill_pattern$/)
}
@$arr_ref = @out_arr;
}
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.)
update: IO's solution is better than mine,
of course. (I just forgot that I should've known better...)
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|