OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

繰り返して表示するのではなく1つだけ・・

  • すぐに回答を!
  • 質問No.132616
  • 閲覧数51
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 8% (10/125)

繰り返して表示するのではなく1つだけ表示させるソースをおしえていただけないでしょうか?
繰り返し表示されてしまうので"foreach"の部分を"if"に変えたのですが、今度は入力されたデータが表示されません。どうか教えてもらいないでしょうか?

----参照-----
#foreach (@all){
if (@all){
# 1行の文字列をコロンを目印にして項目に分割する
($time, $name, $mail, $title, $message) = split(/:/, $_);

# 1件分のデータを表示するサブルーチン
&one_message;
}
close(KEIJI);
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル9

ベストアンサー率 71% (59/82)

察するに、これの前を含めるとこんな感じですか?

open(KEIJI, "<keiji.txt");
@all = <KEIJI>;

foreach (@all){

($time, $name, $mail, $title, $message) = split(/:/, $_);

&one_message;
}

マニュアルを見れば一瞬で分かりますが、
foreachは、通常、foreach $variable ( @array )
の形で使われ、配列@arrayの中身を順に$variableに
セットして、ブロック内を実行します。
で、$variableを省略したときには、$_に値がセットされます。

しかし、if( @all )では、変数$_に配列@allの中身がセット
されないために問題が起こっています。したがって、
$_に、表示させたい@allの要素を明示的にセットしてやれば
良いのではないでしょうか?「1つだけ」ということですので、
@allの先頭の要素だけを表示するようにしてやると、

if( $_ = $all[0] ){

($time, $name, $mail, $title, $message) = split(/:/);

&one_message;
}

こんな感じです。これで、$_に@allの先頭要素をセットし、
その中身がちゃんと定義されている時だけ、ブロック内が
実行されます。

ちなみに、splitも少し変わっていますが、
タイプミスではありません。
splitもforeachと同様、第2引数を省略すると
$_が使われます。
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1

 質問にもうちょっと補足が必要です(^_^;  このルーチンが何をするプログラムの、どんな部分かが分からなければ、この質問だけでは何も答えられません。  こちらから見ると、1回だけ呼び出したいなら foreach と if の外側に &one_message を出してしまえばいいだけのことのように見えます。 ...続きを読む
 質問にもうちょっと補足が必要です(^_^;
 このルーチンが何をするプログラムの、どんな部分かが分からなければ、この質問だけでは何も答えられません。

 こちらから見ると、1回だけ呼び出したいなら foreach と if の外側に &one_message を出してしまえばいいだけのことのように見えます。
お礼コメント
gcc

お礼率 8% (10/125)

これは言葉足らずで申し訳ないです。

こちらから見ると、1回だけ呼び出したいなら foreach と if の外側に &one_message を出してしまえばいいだけのことのように見えます。

▲私も試しましたがこれをやると入力した言葉が表示されなくなってしまいます。なぜだろう。

補足ですが、このプログラムは単純にお問い合わせフォームを作り、これを指定したメールで送るという仕組みです。その中でも疑問のところは最後にメールを送ると同時にお問い合わせした内容をブラウザー上に表示させるというところです。そこで表示させるのに上記のやり方だと何個も表示されてしますということです。
言葉足らずで申し訳ありませんでした。

よろしくお願いします。
投稿日時 - 2001-09-09 21:59:50


このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ