I guess what I was really looking for was some type of function like:
which would provide me just that, the current index. Either way what you've all provided me with is basically the different methods that I've already been using. I basically was just looking for something that fit the generic foreach loop without having to fall back to explicitly indexing the array.
Such a get_index_of operator would be inefficient, hence it doesn't make much sense for Perl to have it.
Think about it - an array is a linear structure meant specifically for random-access of index->element. To find the index of some element you will either have to go through the array looking for the element - this is O(N). You can have more time-efficient algorithms at the cost of space, like having a "mirror" hash of element->index.
As for your original problem, I also sometimes feel a little itch when I have to give up foreach once access to elements other-than-the-current is required.