in reply to Re: table into complex data structure
in thread table into complex data structure

%data = ( Sample 1 => { actin => 20.514, claudin => 30.544, occludin => 31.183, }, Sample 2 => { actin => 20.416, claudin => 25.611, occludin => 27.831, }, ... );

this is what i'd like to have at the end :)

Replies are listed 'Best First'.
Re^3: table into complex data structure
by holli (Abbot) on Oct 31, 2017 at 16:01 UTC
    use strict; use warnings; use List::Util qw(reduce); use Data::Dumper; my $hash = reduce { ${ $a->{ $b->[1] } }->{ $b->[2] } = $b->[3]; $a; } {}, grep { @$_ > 3 } map { [ split /\s{2,}/ ] } map { chomp; $_ } <DATA> ; print Dumper( $hash ); __DATA__ 1 Sample 1 actin 20,514 2 Sample 1 claudin 30,544 3 Sample 1 occludin 31,183 25 Sample 1 actin 20,514 26 Sample 1 claudin 30,544 27 Sample 1 occludin 31,183 49 Sample 2 actin 20,416 50 Sample 2 claudin 25,611 51 Sample 2 occludin 27,831 73 Sample 2 actin 20,416 74 Sample 2 claudin 25,611 75 Sample 2 occludin 27,831 97 Sample 3 actin 24,213 98 Sample 3 claudin 32,065 99 Sample 3 occludin 34,556 121 Sample 3 actin 24,213 122 Sample 3 claudin 32,065 123 Sample 3 occludin 34,556 145 Sample 4 actin 20,498 146 Sample 4 claudin 25,365 147 Sample 4 occludin 27,869 169 Sample 4 actin 20,498 170 Sample 4 claudin 25,365 171 Sample 4 occludin 27,869 193 H2O actin 194 H2O claudin 195 H2O occludin 217 H2O actin 218 H2O claudin 219 H2O occludin


    holli

    You can lead your users to water, but alas, you cannot drown them.