5

Text::CSVタブ区切りファイルを解析できるように Perl モジュールを利用しようとしています。

解析しようとしているファイルは次のとおりです。

#IGNORE COLUMN1 COLUMN2 COLUMN3 COLUMN4
ROW1    x   y   z   a
ROW2    b   c   d   
ROW3    w

ファイルはタブ区切りになっていることに注意してください。このファイルには、N列とN行が含まれる場合があります。また、 の場合ROW2、4 番目のタブがありますが、値はありません。の値のROW3後にタブがありません。つまり、一部の列には未定義の値または空白の値が含まれる場合があります。wCOLUMN1

これまでのところ、私は Perl スクリプトを書き始めましたが、次の質問に答えるコードをどのように記述できるかを理解しようとして非常に早い段階でつまずきました。

いくつあるか調べROWnてください。次に、各COLUMNnチェックでROWn値があるかどうかを確認します。したがって、この場合、COLUMN2COLUMN3COLUMN4は欠損値があります。

どんなヒントやガイダンスも役に立ちます (私は Perl が初めてです)。CPAN Text::CSV ページを見てきましたが、この問題を解決できませんでした。

#!/usr/bin/perl
use warnings;
use strict;
use v5.12;
use Text::CSV;

my $csv = Text::CSV->new ({
     escape_char         => '"',
     sep_char            => '\t',
     eol                 => $\,
     binary              => 1,
     blank_is_undef      => 1,
     empty_is_undef      => 1,
     });

open (my $file, "<", "tabfile.txt") or die "cannot open: $!";
while (my $row = $csv->getline ($file)) {
    say @$row[0];
}
close($file);
4

1 に答える 1