Output:use strict; use warnings; chomp (my @keys = split /, /, <DATA>); # First row shift @keys; # Drop "NAME" my %h; for (<DATA>){ chomp ; my ($name,@items) = split /,\s*/ or next; $h{$name} = { map {$keys[$_] => $items[$_] =~/(\d+)/ } 0..$#keys } +; } printcol("IN",{row1=>["a","c"], row2=>["d","b"]}); printcol("OUT",{row1=>["a","c"], row2=>["d","b"]}); sub printcol{ my ($col, $r) = @_; print "$col:\n"; for (sort keys %$r){ print "$_ : ",join (", ", map{ $h{$_}{$col} } @{$r->{$_}}), "\n +"; } print "\n$col:\n"; for (sort keys %$r){ print "$_ : ",join (", ", @{$r->{$_}}), "\n"; } print "\n"; } __DATA__ NAME, IN, OUT a, 10, 20 b, 10, 30 c, 50, 20 d, 20, 60
IN: row1 : 10, 50 row2 : 20, 10 IN: row1 : a, c row2 : d, b OUT: row1 : 20, 20 row2 : 60, 30 OUT: row1 : a, c row2 : d, b
Our business is run on trust. We trust you will pay in advance.
In reply to Re: Linking data together
by NetWallah
in thread Linking data together
by perlUser345
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |