CGI-BBS > CGI > Perl > ループ処理が止まってしまいます。どなたかご指導を


カレッヂ
カレッヂ


質問者 tom  投稿日 2/11(月) 01:52:31
検索プログラムを組んでいるのですが
同じ会社名の重複表示を避けるのにループ使ったのですが重複名が出たところで
入れ子処理が止まってしまいます。
要点部分を抜粋しましたのでどなたかヒント頂ければありがたいのですが

データファイルを @LISTER にopenしました。

foreach $line (@LISTER){
  ($date,$kaisyamei,$add1,$add2,$tel,$tantou) = split(/\,/,$line);
  foreach $mei (@syamei){ if($kaisyamei eq $mei ){ $match = 1; } }
  if(!$match){ push (@syamei,$kaisyamei); }
}


print "<tr><td bgcolor=$table_c><nobr><font color=$comt_fc>\n";
print "会社名 <select name=\"disp_no\" size=\"1\">\n";
print "<option value=\"all\" selected>指定しない</option>\n";
       for (@syamei){ print "<option>$_\n"; }
print "</select></font></nobr></td></tr>\n";


回答者 しあわせのツボ  [削除]  投稿日 2/11(月) 14:57:44
外側のループが1周終わるたびに、$matchを戻す必要がありますね。
ヒットすると$matchが1になる所まではいいのですが、
これだと外側のループが次の周回に入っても1のままです。
質問者 tom  [削除]  投稿日 2/13(水) 03:58:50
$match = 0;を組み込んで無事に動きました。有り難うございました。

返信(回答)する


Web裏技