私はCSVファイルを解析し、データをスクラブして元に戻す前にいくつかの変更を加える作業スクリプトを持っています。私が扱っていた元のファイルはコンマで区切られていました。しかし、私はこれに対して実行されるすべての実際のファイルを受け取りました。それらはすべてパイプで区切られています。私は同じことをする必要がありますし、カンマ区切りのファイルとしてそれらを一緒に戻す。コンマで区切られたパイプから?
#!/usr/bin/perl/
use strict;
use warnings;
use Data::Dumper;
use Time::Piece;
my $filename = 'records.csv';
open my $FH, $filename
or die "Could not read from $filename <$!>, program halting.";
# Read the header line.
chomp(my $line = <$FH>);
my @fields = split(/|/, $line);
print Dumper(@fields), $/;
my @data;
# Read the lines one by one.
while($line = <$FH>) {
chomp($line);
...私のデータを解析して、現在、私は、ファイルに戻ってデータを入れるためにこので終わる - -
だから、開始するには、私が持っている
# put the records back
push @data, \@fields;
しかし、どのようにデータをカンマ区切りにして戻すのですか?
私はこれがちょうど間違ったコピーだと仮定しますが、 'split(/ |/$行);' split(/ \ |/$行); ' – ThisSuitIsBlackNot
* "同じことをする必要がありますカンマで区切ったファイルとしてまとめることができます」*いいえ、あなたはカンマではなくパイプ上のデータを分割し、そこから通常どおりに処理するだけです。新しいバグの層を導入するので、実際にあなたの "期待された"入力ファイルを作り直してはいけません。 – Borodin
ありがとう@ThisSuitIsBlackNot - 実際にそこにあったコンマの代わりに素早くパイプを投げていました - 私は脱出が必要なのか分からなかった! – BigRedEO