rendered paste bodymy @combs = ('A','T','G','C');
my $data;
sub combine {
my (@combs) = @_;
my @newcombs = ();
for my $item (@combs) {
for my $item2 (@combs) {
# dodii...
my $tmp = "$item$item2";
push @newcombs, $tmp if ($data=~/$tmp/);
}
}
return @newcombs;
}
sub prepare {
open FILE, "<data.txt" or die("Unable to open data.txt: $!");
$data = join "", <FILE>;
close FILE;
}
sub lookup {
my (@combs) = @_;
my %tmp;
my @newcombs;
map { @{$tmp{$_}} = ($data=~/$_/g); } @combs;
for my $comb (keys %tmp) {
push @newcombs, $comb if (@{$tmp{$comb}} > 0);
}
return @newcombs;
}
$| = 1;
prepare;
for my $i (1..5) {
print STDERR "Iteration $i..." . @combs . " combine ";
@combs = combine @combs;
print STDERR @combs . " out ";
## look for combs
#my @tmpcombs = lookup @combs;
#print STDERR @tmpcombs . " out\n";
last unless(@combs);
open OUTPUT, ">combs";
print OUTPUT join "\n", @combs;
close OUTPUT;
}