vnir_1 vnir_2 vnir_3 vnir_4 vnir_5 vnir_6 vnir_7 310015 0.37042 0.36909 0.36886 0.36698 0.36615 0.36449 0.36404 310100 0.25889 0.25773 0.2569 0.25563 0.25565 0.25511 0.25508 310134 0.26163 0.26149 0.26059 0.26034 0.2604 0.2598 0.26085 310167 0.23168 0.23031 0.23045 0.22822 0.2267 0.22575 0.22453 310196 0.26995 0.26902 0.2685 0.26689 0.26624 0.2647 0.26461 #### #!/usr/bin/env perl use strict; use warnings; use Data::Table; use Path::Tiny; # Load the tsv file with a header my $dt = Data::Table::fromTSV('data.tsv', 1 ); # Get a Data::Table that contains only the first column my $names_dt = $dt->subTable( undef, [ '' ] ); my $n_col = $dt->nofCol; my @column_names = $dt->header; for( my $i = 1; $i <= $n_col - 1; ++$i ){ my $col_name = $column_names[ $i ]; my $col_dt = $dt->subTable( undef, [ $col_name ] ); my $new_dt = $names_dt->clone(); $new_dt->colMerge($col_dt); my $file_name = "file_$i.tsv"; my $fh = path($file_name)->openw_utf8; print {$fh} $new_dt->tsv; $fh->close; } exit;