0

私は Perl で書いていますが、支援が必要です。

「Bobby」を見つけて「display」でテキスト行を印刷するプログラムを作成しようとしています。

私はすでにプログラムを作成しており、1 つの小さな欠陥を除いて動作しています。「表示」を含む単一行の下に「Bobby」が複数回存在する場合、その行が複数回印刷されます。明確にするために、以下の例を参照してください。

テキストファイルに含まれるもの...

display ("Blue")
....
....
....
....
display ("Yellow")
....
bobby
....
bobby
bobby
....
display ("Red")
....
.... and so on

私の現在の出力は...

display ("Yellow")
display ("Yellow")
display ("Yellow")

次のようにする必要があります。

display ("Yellow")

ここに私の関連コードがあります:

while(<$AR>){
  $display = $_ if /display/;
  $output_textbox->insert("end", "$display\n") if /"bobby"/i;
}

私はいくつかの異なることを試みましたが、成功しませんでした。助けていただければ幸いです。

4

3 に答える 3

1

次のようなものが必要です。

if (/"bobby"/i){
   $output_textbox->insert("end", "$display\n");
   last;
}

「bobby」が見つかった場合、「最後」はループを終了します。

于 2014-01-07T10:03:55.563 に答える