ファイルを読んでいます。行の残りのすべての番号を1にハッシュするためのキーとして、行の最初の番号を取得するハッシュが必要です。
Dumperは正しく印刷されるため、ハッシュを正しく追加していると思います。ただし、「$ first $ secondID \ n」を出力しても、出力は得られません。
while (<FILE>) {
chomp $_;
if (/(\d+)\t(.+)/) {
$firstNum = $1;
@seconds = split(/\,/,$2);
foreach $following (@seconds) {
$Pairs->{$firstNum}{$following} = 1;
}
foreach $first (sort {$a <=> $b} keys %Pairs) {
print "$first\n";
%second = {$Pairs{$first}};
foreach $secondID (sort {$a <=> $b} keys %second) {
print "$first $secondID\n";
}
}
print Dumper($Pairs);
}
else {
print "ERROR\n";
}
}
後で、2つの数値を指定して、$ Pairs {$ num1}{$num2}が定義されているかどうかを確認したいと思います。私は書きますか
if(defined $Pairs{$num1}{$num2})
または、最初に最初のキーを確認する必要があります。次に、2番目のキーを確認します
if (defined $Pairs{$num1}) {
$temp = $Pairs{$num1};
if (defined $temp{$num2}) {
print "true\n;
}
}