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.
|