morgon has asked for the wisdom of the Perl Monks concerning the following question:
I usually just grep through arrays, but recently I was not looking for an array-element, but for the index of an array-element, so I tried this:
I would have expected an output of "<0> <1> <>" (as the index where the value is 1 is 0, the index where the value is 2 is 1 and there is no index with a value of 3), but instead I get "<1> <1> <0>".use strict; my @array=(1,2); my $i1 = grep { $array[$_] == 1 } (0..$#array); my $i2 = grep { $array[$_] == 2 } (0..$#array); my $i3 = grep { $array[$_] == 3 } (0..$#array); print "<$i1> <$i2> <i3>\n";
Why is that?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: grep surprise
by AnomalousMonk (Archbishop) on Nov 11, 2018 at 21:37 UTC | |
|
Re: grep surprise
by ikegami (Patriarch) on Nov 11, 2018 at 21:39 UTC | |
by Eily (Monsignor) on Nov 12, 2018 at 09:39 UTC | |
|
Re: grep surprise
by LanX (Saint) on Nov 11, 2018 at 22:47 UTC | |
by morgon (Priest) on Nov 11, 2018 at 23:52 UTC | |
by LanX (Saint) on Nov 12, 2018 at 13:46 UTC | |
by dbuckhal (Chaplain) on Nov 12, 2018 at 18:37 UTC | |
| |
|
Re: grep surprise
by BillKSmith (Monsignor) on Nov 12, 2018 at 11:56 UTC | |
by Athanasius (Archbishop) on Nov 12, 2018 at 13:21 UTC | |
by LanX (Saint) on Nov 12, 2018 at 16:04 UTC | |
|
Re: grep surprise
by Anonymous Monk on Nov 11, 2018 at 22:07 UTC |