sub lsearch { my $item = shift; grep { $item eq $_[$_] } 0 .. $#_; } #### for (reverse lsearch $item, @list) { splice @list, $_, 1 } # or splice @list, $_, 1 for reverse lsearch $item, @list; #### sub winnow { my $item = shift; grep { not $item eq $_ } @_; } @list = winnow $item, @list;