You should be more specific in your definition of "sorted". Look at my solution elsewhere in this thread. If you mean that the 2nd, 3rd and 4th column being sorted numeric, that isn't very hard either: use pack/unpack
my @key = qw( chr fivep threep strand );
my @files = qw( file1.tab file2.tab );
my %c7;
foreach my $file (@files) {
csv (
in => $file,
out => undef,
sep => "\t",
on_in => sub { $c7{pack "A10l>l>l>", @{$_[1]}[0..3]}{$file} = $_
+[1][6] }
);
}
say join "\t" => @key, @files;
foreach my $key (sort keys %c7) {
say join "\t" => (unpack "A10l>l>l>" => $key), map { $c7{$key}{$_}
+ // 0 } @files;
}
Enjoy, Have FUN! H.Merijn
|