約 25000 レコードのファイルがあり、各レコードには 13 を超えるエントリがあり、薬物名です。これらのエントリのすべての可能なペアの組み合わせを形成したいと考えています。例: 行に 3 つのレコード A、B、C がある場合、1) AB 2) AC 3)B C のように組み合わせを形成する必要があります。以下はインターネットから取得したコードです。配列:
use Math::Combinatorics;
my @n = qw(a b c);
my $combinat = Math::Combinatorics->new(
count => 2,
data => [@n],
);
while ( my @combo = $combinat->next_combination ) {
print join( ' ', @combo ) . "\n";
}
私が使用しているコードは、出力を生成しません:
open IN, "drugs.txt" or die "Cannot open the drug file";
open OUT, ">Combination.txt";
use Math::Combinatorics;
while (<IN>) {
chomp $_;
@Drugs = split /\t/, $_;
@n = $Drugs[1];
my $combinat = Math::Combinatorics->new(
count => 2,
data => [@n],
);
while ( my @combo = $combinat->next_combination ) {
print join( ' ', @combo ) . "\n";
}
print "\n";
}
この問題の解決策を教えてください。