http://qs1969.pair.com?node_id=11142471


in reply to Find last position of an element in array

You could build a hash, keyed by @array items with the value being array position, via a map that, in effect, keeps overwriting the position of each item until the last one is reached.

johngg@abouriou:~/perl/Monks$ perl -Mstrict -Mwarnings -E 'say q{}; my @array = ( 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, + 6 ); my %lasts = map { $array[ $_ ] => $_ } 0 .. $#array; say qq{$_ => $lasts{ $_ }} for sort keys %lasts;' 1 => 2 2 => 7 3 => 10 4 => 16 5 => 18 6 => 19

I hope this is helpful.

Cheers,

JohnGG