I'll agree that it would probably be more efficient to create a hash and work with that, however here is a way to get the array index using grep
#!c:\perl\bin\perl.exe -w use strict; my @csvlist = qw(file3 file6 file1 file10 file5 file2 file7 file4 file +9 file8); my @listofnames = qw(file1 file2 file3 file4 file5); for my $x(@listofnames) { my ($test) = grep { $csvlist[$_] =~ /$x/} 0..$#csvlist; print "$x found at index: $test\n"; }
That is, if I understood your question correctly.

Update
Here is the output from the test script above:

file1 found at index: 2 file2 found at index: 5 file3 found at index: 0 file4 found at index: 7 file5 found at index: 4
Update: diotalevi makes a good point below about the inefficient use of grep that I displayed above.

In reply to Re: Array searching, grep, first by ChrisR
in thread Array searching, grep, first by jimbus

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":