ob1, ob2, 34
ob1, ob3, 56
ob1, ob4, 12
ob1, ob5, 78
ob1, ob6, 23
ob3, ob1, 56
ob7, ob1, 23
ob8, ob1, 12
ob9, ob1, 90
etc ...
####
ob1 ob2 ob3 ob4 ob5 ob6 ob7 ob8 ob9
ob1 0 34 56 12 78 23 23 12 90
ob2 34
ob3 56
ob4 12
ob5 78
ob6 23
ob7 23
ob8 12
ob9 90
####
ob1, ob3, 56
ob3, ob1, 56
####
#!/usr/local/bin/perl
use strict;
my $data = $ARGV[0];
# open file here
open(DATA, "$data") || die "cant open file for reading\n";
my %table;
my %rows;
my %cols;
for() {
my($row,$col,$val) = split ',';
$table{$row}{$col} = $val;
$rows{$row}++;
$cols{$col}++;
}
for my $col (sort keys %cols) {
print "\t$col";
}
print "\n";
for my $row (sort keys %rows) {
print "$row\t";
for my $col (sort keys %cols) {
print $table{$row}{$col} if defined $table{$row}{$col};
print "\t";
}
print "\n";
}
####
ob1 ob2 ob3 ob4 ob5 ob6
ob1 34
56
12
78
23
ob3 56
ob7 23
ob8 12
ob9 90