thanks a lot, I've been using hash-hash-array-array in order to keep memory use down. I think array access is also faster than hash, so I did this:
foreach my $rat (@directories) {
print "Reading Merged_99$rat/bs_seeker-CG.tab ...\n";
open(FH,"<Merged_99$rat/bs_seeker-CG.tab") or die "cannot read M
+erged_99$rat/bs_seeker-CG.tab: $!";
while (<FH>) {
if (/M/) {
next;
} elsif ((/^chr(\S+)\s+(\d+)\s+\d+\s+(\d)\.(\d+)\s+(\d+)/) &&
+ ($1 ~~ @CHROMOSOMES) && ($5 >= $MINIMUM_COVERAGE)) {
#chromosome $1, methylated C $2, percent $3.$4 and coverage $5
$DATA{$1}{$2}[$set][$replicate] = "$3.$4";
} elsif ((/^chr(\S+)\s+(\d+)\s+\d+\s+(\d)\s+(\d+)/) && ($1 ~~
+ @CHROMOSOMES) && ($4 >= $MINIMUM_COVERAGE)) {
$DATA{$1}{$2}[$set][$replicate] = $3;
}
}
close FH;
$replicate++;
}