Take a look at the data structures cookbook. Your basic approach should be to build an array of arrays (actually array references). You can then loop over your array to generate a new array.
Here's an example of working with an AoA. In this example, key things to understand are how data structures are built up in perl, and how to use the map function to make a new array out of an existing one. If you can't grok map right away, you can use a foreach or while loop instead.
use strict; use warnings; use diagnostics; use Data::Dumper; # Generate primary data array my @data = map {[ split ]} <DATA>; print Dumper \@data; my $first = $data[0]; my @first_vs_x = map { [ "$first->[0] vs $data[$_][0]", # Generate new name entry $first->[1] - $data[$_][1], # Fred - X $first->[2] + $data[$_][2], # Fred + X ] } 1..$#data; # use indexes from 1 to last in @data print Dumper \@first_vs_x; __DATA__ Fred 15 20 Wilma 23 19 Barney 1 22 Betty 99 63
It's worth noting that this example keeps everything in memory, and for large data sets, you'll need to use a different approach.
TGI says moo
In reply to Re: processing columns of text
by TGI
in thread processing columns of text
by sitnalta
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |