Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Foreach Loops

by hubb0r (Pilgrim)
on Mar 15, 2005 at 19:20 UTC ( #439725=note: print w/replies, xml ) Need Help??


in reply to Foreach Loops

I guess what I was really looking for was some type of function like:
get_index_of($line)
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.

Thanks for your input

Replies are listed 'Best First'.
Re^2: Foreach Loops
by spurperl (Priest) on Mar 16, 2005 at 10:58 UTC
    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.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://439725]
help
Chatterbox?
[RonW]: My daughter and I like to "fly" Flightgear. What ever aircraft we pick, she usually shoots me out of the sky
[Corion]: Oooh. I didn't know about Flightgear. I've been looking at maybe playing with a flight simulator again, thanks!

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (8)
As of 2017-02-27 18:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Before electricity was invented, what was the Electric Eel called?






    Results (390 votes). Check out past polls.