in reply to Re: how do i find the index of a specific array value?
in thread How do I find the index of a specific array value?
my ($index) = grep $array[$_] eq $search_for, 0 .. $#array;
This is what I think is happening: grep is stepping through the range of numbers in list 0..$#array and substituting each in $_, and then using this as an index to find the corresponding element in @array. Eventually the expression $array[$_]eq $search_for is true and that element of the range 0..$#array is put into a list returned by grep, which is then assigned to ($index).
This is my area of confusion: If @array has duplicate values, why does grep seem to stop when it finds the first value rather than produce a list of two values? Yet if I replace ($list) with @list, I get the index of both duplicate elements. I would greatly appreciate it if someone could cast some light on my darkness here :)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Answer: how do i find the index of a specific array value?
by fenners (Beadle) on Aug 03, 2001 at 17:03 UTC |