4

このようなペアがあります (%hash 形式にソートされたデータ (大きなデータがあります))
G1-G2
G2-G3
D1-D2
D3-D2
G3-D3
G2-D3

Perl スクリプト

    use strict;
    use warnings;
    use Data::Dumper;
    my %hash;
    $hash{'G1'}='G2';
    $hash{'G2'}='G3';
    $hash{'D1'}='D2';
    $hash{'D3'}='D2';
    $hash{'G3'}='D3';
    $hash{'G2'}='D3';

    print Dumper \%hash;

出力 $ VAR1
= { 'G1' => 'G2', 'G2' => 'D3', 'D3' => 'D2', 'G3' => 'D3', 'D1' => 'D2' };

ここで欠落している G2-G3 bcz キー ハッシュが重複しています 重複
を追加する必要があります (配列を使用できますが、大規模なデータ システムが遅くなります)

任意の高速メソッド ペアを追加し、可能なペアの条件入力を取得する

If $input='G2'<br> 出力を取得する G2->(G3,D3,G1)

If $input='D2'<br> 出力を取得する D2->( D1,D3)

4

3 に答える 3

1

ハッシュで複数のエントリをサポートする最善の方法は、配列参照を値として使用することです。あなたの場合、これは

$hash{'G1'}=['G2'];
$hash{'G2'}=['G3', 'D3'];
$hash{'D1'}=['D2'];
$hash{'D3'}=['D2'];
$hash{'G3'}=['D3'];
于 2013-06-20T14:20:35.773 に答える