Foreach element in @sidx, keep it (save it in @resultline) if it matches any test in @skeyw. Foreach element in @sidx2, keep it (save it in @resultline2) if it matches any test in @premiumkeyw.
Well that's pretty easy then.
# Remove empty strings from @skeyw and @premiumkeyw
@skeyw = grep {$_ ne ""} @skeyw;
@premiumkeyw = grep {$_ ne ""} @premiumkeyw;
# Build a big regular expression out of @skeyw
# for faster matching.
my $skeyw_regexp = join('|', @skeyw);
$skeyw_regexp = qr/$skeyw_regexp/;
# Repeat for @premiumkeyw
my $premium_regexp = join('|', @premiumkeyw);
$premium_regexp = qr/$premium_regexp/;
# Foreach line in @sidx
foreach my $line (@sidx) {
# Keep it (save it in @resultline) if it matches
# any test in @skeyw.
if($line =~ /$skeyw_regexp/) {
# do something with search results
push @resultline, $line;
$icnt++; # do you need this?
}
}
# Foreach element in @sidx2
foreach my $line (@sidx2) {
# Keep it (save it in @resultline2) if it matches
# any test in @premiumkey.
if($line =~ /$premium_regexp/) {
# do something with search results
push @resultline2, $line;
$icnt++; # do you need this?
}
}
Hope it helps
jarich |