Транспонировать строки в столбцы, используя Perl - PullRequest
3 голосов
/ 02 августа 2011

Я новичок в Perl.У меня есть назначение для транспонирования строк в столбцы огромных данных.

customers         goods     transportation
----------        -----     --------------
A, B, C, D        rice      truck
E, G, D           corn      train
.............     .....     .........
T, H, K, M, N     wheat     air cargo


И я хотел бы, чтобы вывод выглядел следующим образом:

customers         goods     transportation
----------        -----     --------------
A                 rice      truck
B                 rice      truck
C                 rice      truck
D                 rice      truck
.............     .....     .........
N                 wheat     air cargo

Может кто-нибудь помочь.Большое спасибо.

Ответы [ 3 ]

2 голосов
/ 02 августа 2011

Скорее всего, вы натолкнулись на функцию map , изучите, как она работает и как вы строите строки или столбцы, и вы получите это, удачи! :)

1 голос
/ 02 августа 2011

Спасибо всем.После нескольких часов попыток я смог понять, как выполнить свое задание.Требуется несколько простых шагов ручного вмешательства для ввода и вывода, то есть добавьте , в конце первого столбца ввода и удалите \ во втором столбце вывода, используя Excel.Настало время представить вывод.Я ценю, если у кого-то есть лучший Perl-код для его решения.

#!/usr/bin/perl
my @records;
while (<DATA>) {
    chomp;
    my @columns = split ", ", $_;
    push @records, \@columns;
}

foreach my $record (@records) {
    foreach my $column (@{$record}) {
        if (\$column != \$$record[-1]) {
            print "$column\t \\$$record[-1]\n";
        }
    }
}

__DATA__
A, B, C, D,     Rice    Truck
E, G, D,    Corn    Train
T, H, K, M, N,  Wheat   Air cargo

__OUTPUT__
A    \  Rice    Truck
B    \  Rice    Truck
C    \  Rice    Truck
D    \  Rice    Truck
E    \  Corn    Train
G    \  Corn    Train
D    \  Corn    Train
T    \  Wheat   Air cargo
H    \  Wheat   Air cargo
K    \  Wheat   Air cargo
M    \  Wheat   Air cargo
N    \  Wheat   Air cargo
0 голосов
/ 02 августа 2011

Давно я не смотрел на Perl, но хорош ли этот Perl-мод?

Данные :: Pivot

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