in reply to How to get the index of smallest whole number in an array?
One way:
(There may be specific utilities for this purpose in List::Util or the older List::MoreUtils.)c:\@Work\Perl\monks>perl -wMstrict -le "my @ra = qw(12 -3 4 71 -11 -598 -100203); ;; my $i_min; ;; $ra[$_] >= 0 and (! defined($i_min) or $ra[$_] < $ra[$i_min]) and $i_min = $_ for 0 .. $#ra; ;; if (defined $i_min) { print qq{i of min lwn ($ra[$i_min]) == $i_min}; } else { print 'no lowest whole number in array'; } " i of min lwn (4) == 2
Update: This approach returns the lowest index of more than one LWN in an array. To obtain the highest index of multiple LWNs, change the < (less than) comparison in the
(! defined($i_min) or $ra[$_] < $ra[$i_min])
term to <= (less than or equal):
(! defined($i_min) or $ra[$_] <= $ra[$i_min])
Give a man a fish: <%-{-{-{-<
|
|---|