Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: Finding the index of a specific element in an array.

by i5513 (Pilgrim)
on Jan 24, 2012 at 23:28 UTC ( #949790=note: print w/replies, xml ) Need Help??

in reply to Finding the index of a specific element in an array.

Using regex features, maybe a good homework task:

use strict; use warnings; my @a=(2,4,7,5,8); my ($position, $spaces); # Elements have not " " ("@a" concatenate with spaces) if ("@a" =~ /(?:^|\ ) # Element searched maybe the first or not \K # Count previous group matched within ${^PREMATCH} var (?{ $position=pos; $spaces= () = ${^PREMATCH} =~ m, ,g; }) # Next group will be that which are we searching, s +o # we take note about where is it and how many space +s # should we ignore ("@a" add spaces) (8) # Element searched (?:\ |$) # Element searched maybe the last or not /xpg) { print "Position:" ,$position - $spaces, "\n"; }

In your example you can use index function:

my $pos=index (join ("",@array),7);

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://949790]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (4)
As of 2017-12-12 02:03 GMT
Find Nodes?
    Voting Booth?
    What programming language do you hate the most?

    Results (323 votes). Check out past polls.