-----Original Message-----
From: Adriano Allora [mailto:[EMAIL PROTECTED]
Sent: Wednesday, August 16, 2006 1:21 PM
To: [email protected]
Subject: match an array element
hi all,
I need to match any array element in a list of files. More precisely
I'd to extract the $. for each match recording an hash element like
this one:
$matches{$filename} = $.
Every file is a list of unique words, so I'm sure there will not be
problems.
My actual solution sounds like:
foreach $file (@listoffiles)
{
open (IDX, "<$file") or die "error on $file: $!\n";
while(<IDX>)
{
foreach $word (@listofwords)
{
$match{$file}= $. if /^$word$/;
}
print "done $file\n" if eof;
}
close(IDX);
}
Two questions:
1) is there a way to avoid a foreach in a foreach?
2) the (possible) other solution is faster than a foreach in a foreach
or it's only a different way to write it?
************************************************************************
****
1) I would think not if each array contains unique elements then two
foreach is necessary.
So you for each element in @listoffiles you will open the FH IDX? This
seems redundant and wasteful to me. I would open prior to the 1st
foreach and close it at the end when you are done.
2) the map function is an equivalent to the foreach.
perldoc -f map
3) at the top of your program
use strict;
use warnings;
_________________________________________________
This message is for the designated recipient only and may contain privileged,
proprietary, or otherwise private information. If you have received it in
error, please notify the sender immediately and delete the original. Any other
use of the email by you is prohibited.
Dansk - Deutsch - Espanol - Francais - Italiano - Japanese - Nederlands - Norsk
- Portuguese - Svenska: www.cardinalhealth.com/legal/email
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>