人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Perlに関する質問です。

csvファイルをPerlで処理しないといけないんですが、Perl初心者のため処理に困っています。

csvファイルには
ID,X座標,Y座標
0,1.43,5.32
1,3.23,6.33
2,4.98,7.88
3,6.22,9.42
という感じでID10000までのデータが入っています。

IDごとにY座標-X座標を出力させ、またID1のX座標とID0のX座標の差、ID2のX座標とID1のX座標の差、ID3のX座標とID2のX座標の差・・・を出力させたいです。

とても初歩的な質問かもしれませんが、ご教授お願いします。

●質問者: ishikennn
●カテゴリ:コンピュータ
✍キーワード:23 CSV Perl データ ファイル
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● thrillseeker
●60ポイント

以下を scipt.pl として保存し、csv のファイル名を引数に与えて実行して見て下さい。

#! /usr/bin/perl

while (<>) # 引数で与えられたファイルから1行ずつ読み込んで処理する
{
 next unless (/^\d/); #数字で始まらない行は飛ばす
 chomp; #行末の改行文字を削除
 my ($id, $x, $y) = split(",",$_); #行を分割して読み込み
 print $y-$x,","; 
 print $x-$x_prev if ($x_prev != undef); # 最初のデータ行では実行されない
 $x_prev = $x;
 print "\n";
}
◎質問者からの返答

ありがとうございます。無事動きました。

ファイルに出力できるようにプログラムを書き換えてみようとおもいます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ