• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:perlを使って、CSVデータからテキストデータを作りたいです。)

perlを使用してCSVデータからテキストデータを作成

このQ&Aのポイント
  • perlを使用して、CSVデータからテキストデータを作成する方法について教えてください。
  • 同じIDのアイテムと商品だけを表示する方法についても教えてください。
  • ファイル名とファイルの中身はどのように生成すれば良いですか?

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

CSVはそれを出力するアプリケーションによって異なりますが、それはきちんと2次元配列に入っているとします。 #CSVはそれを出力するアプリケーションによって異なりますが、それはきちんと2次元配列に入っているとします。 my @DATA=( ["ID","アイテム","商品名"], ["1111","AAAAAAAA","aaaaaaaa"], ["1111","BBBBBBBB","bbbbbbbb"], ["1111","CCCCCCCC","cccccccc"], ["2222","AAAAAAAA","aaaaaaaa"], ["2222","DDDDDDDD","dddddddd"], ); これを for(1..$#DATA){}でループさせて、IDだけのリストと、ハッシュ(ID)のハッシュ(アイテム,商品名)に代入して、最後にIDをキーにしてハッシュを呼び出す。 複雑なデータならリファレンスを使って処理するのでしょうが、ここは順当に初心者でもわかりやすい方法で・・

potwell331
質問者

お礼

$user_id[$k] = $split_data[1]; for($j = 0; $j < @csv_data; $j++){ @split_data = split("\,",$csv_data[$j]); if($split_data[1] == $user_id[$k]) { print FH … こうやって書いたら上手く行きました! ありがとうございました!

potwell331
質問者

補足

今、こんな感じで書いています。 for($j = 0; $j < @csv_date; $j++){ @split_date = split("\,",$csv_date[$j]);     if(※ユーザーIDが一緒だったらという条件を加えたい){ print FH "■ID${split_date[0]}\n\n"; print FH "アイテム/${split_date[1]}\n"; print FH "商品/${split_date[2]}\n"; print FH "------------------------------------\n\n"; } } ここの※印のところの書き方が分かりません、、 ここの書き方って教えていただけないでしょうか、、 すみません。

関連するQ&A