Читайте CSV и создавайте разные массивы - PullRequest
0 голосов
/ 01 сентября 2009

Я создаю скрипт для чтения значений из CSV-файлов и использования значений для других задач. Я написал следующий код для чтения значений.

sample file:

site,type,2009-01-01,2009-01-02,....
X,A,12,10,...
X,B,10,23,...
Y,A,20,33,...
Y,B,3,12,...

and so on....

Код:

my @value;
while (<INFILE>) {
    next if $_ !~ /B/;
        my ($v1, $v2, @v3) = split /[,]/, $_;
        push(@value, @v3);
}

это дает мне все значения типа B. Мне нужна помощь для создания различных массивов для каждого значения типа B.

Ответы [ 3 ]

3 голосов
/ 01 сентября 2009

Чтение CSV-файлов сложнее, чем многие из нас думали поначалу. Даже оказывается, что чтение файлов CSV очень сложно. Поэтому я рекомендую не сделать это самостоятельно, а вместо этого использовать Text :: CSV_XS .

2 голосов
/ 01 сентября 2009

Из того, что я понимаю, вы хотите использовать список списков:

my @value;
while (<INFILE>) {
    next if $_ !~ /B/;
    chomp;
    my ( $v1, $v2, @v3 ) = split /[,]/, $_;
    push @value, [@v3];  # This creates a list of lists
}

use Data::Dumper::Simple;

print Dumper @value;
1 голос
/ 01 сентября 2009

Пожалуйста, посмотрите на эту ссылку . Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...