最初のものには配列を使用し、2 番目のものには 2 次元ハッシュを使用します。最初のものは大まかに次のようになります。
$list[0] # row 1 - the value is "A B 1"
そして、次のようなハッシュ:
$hash{A}{A} # the intersection of A and A - the value is 0
問題を実装する方法を理解することは、私にとって精神的な戦いの約 75% です。ハッシュや配列を出力する方法については詳しく説明しません。これは簡単なことであり、どのように出力したいか、またはどのくらい出力したいかについても完全に明確ではないからです。しかし、配列をハッシュに変換すると、次のようになります。
foreach (@list) {
my ($letter1, $letter2, $value) = split(/ /);
$hash{$letter1}{$letter2} = $value;
}
少なくとも、それがあなたが探しているものだと思います。本当に必要な場合は、正規表現を使用できますが、文字列から 3 つの値を抽出するだけではおそらくやり過ぎです。
編集: もちろん、@list
ファイルからハッシュを直接アセンブルするだけで済みます。しかし、それを理解するのはあなたの仕事であり、私の仕事ではありません。