• ベストアンサー

配列要素

ファイルから読み込んだ、要素数の分からない配列があります。 前から2つずつ順に表示したいのですが、どうしたらよいでしょうか? <ファイルfruit.datの内容>―――→商品名(全角) 半角数字 りんご 210 いちご 350 みかん 390 ぶどう 500 レモン 100 柿 200 <<表示>> 商品:りんご 210円    いちご 350円    みかん 390円 商品:ぶどう 500円 商品:レモン 100円    柿 200円 open(RF,"<fruit.dat"); while(<RF>){ @data=split; ---<ここで処理>--- } close(RF); このような感じです。 配列@dataから2つずつ表示させたいんです。 良い方法がありましたら、教えてください。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

open(RF,"<fruit.dat"); while(<RF>){ @data=split; $data=@data; for($i=0;$i<$data;$i+=2){ print ((($i==0) ? "商品:" : "\t" ) . "$data[$i] $data[$i+1]円\n"); } } close(RF);

noname#13767
質問者

お礼

ありがとうございました。解決しました。 配列の要素数を数える方法が参考にました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#10667
noname#10667
回答No.2

ちょっと見つけたので・・初心者ですが。 foreach $temp(@data){ @mydata=split(/ /,$temp); $max=@mytemp; print qq(商品:); for($i=0;$i=$max;$i+=2){ print qq($mydata[$i] $mydata[$i+1]<br>); } } @dataは、ファイルから読み込んだデータです(dat ファイルの区切りをスペースにしてありますが、 区切りは別の方がいいかも)。 もっといい方法はあると思います。 だめだったらすいません。

noname#13767
質問者

お礼

ありがとうございます。 参考にさせていただきます。

すると、全ての回答が全文表示されます。

関連するQ&A