foreach $item (@resultline, @premium_resultline)
then pulls in 2/both files for reading/search simultaneously:open (SIDX, "$data_dir/search.idx"); open (SIDX2, "$data_dir/search2.idx");
(@skeyw) = split(/ /,$search_line);
I am thinking this for logic reasons: $search_line = $fields{'keywords'}; $search_line2 = $fields{'keywords'};if ($file_locking ne "No"){flock (SIDX, LOCK_SH) or die "Can't set loc +k for file: $data_dir/search.idx, $data_dir/search2.idx $!\n";} while($line3 = <SIDX>) { $line2 = <SIDX2>; $sline = "${line1}${line2}${line3}"; foreach $kwr (@skeyw) { if (($sline =~ /$kwr/i) and ($kwr ne "")) { $toadk = "true"; } } if ($toadk eq "true") { $premium_resultline[$icnt] = "${line2}"; $resultline[$icnt] = "${line3}"; # $resultline[$icnt] = "${line1}${line2}${line3}"; $toadk = false; $icnt++; } } #if ($file_locking ne "No"){flock (CIT, LOCK_UN);} close (SIDX); close (SIDX2); }
However this does not allow for logic since I need the @skeyw to split itself once yet recognize that SIDX and SIDX2 are separate files. The search result return is:(@skeyw) = split(/ /,$search_line); (@skeyw) = split(/ /,$search_line2);
sub get_search_ready { my ($search_line) = @_; my ($search_line2) = @premium_resultline; $reline = $search_line; $reline = $search_line2; $reline =~ s/[+\[\]()*^.\$?\\~<>;]//g; return ($reline); }
In reply to Separating multiple keyword search input by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |