配列::比較

array :: compareは、配列を比較するためのPerl拡張です。
今すぐダウンロード

配列::比較 ランキングとまとめ

広告

  • Rating:
  • ライセンス:
  • Perl Artistic License
  • 価格:
  • FREE
  • 出版社名:
  • Dave Cross
  • 出版社のWebサイト:
  • http://search.cpan.org/davecross/Array-Compare-1.14/lib/Array/Compare.pm

配列::比較 タグ


配列::比較 説明

配列:: Compareは、配列を比較するためのPerl拡張です。 概要array :: compareを使用します。 My $ COMP1 =配列:: Compare-> New; $ comp-> sep( '|'); $ comp-> skip({3 => 1,4 => 1}); $ COMP->空白(0); $ COMP->ケース(1); My $ COMP2 = array :: compare-> new(sep => '|'、whitespace => 0、case => 1、skip => {3 => 1,4 => 1});私のarr1 = 0 .. 10;私のarr2 = 0 .. 10。 $ COMP1->比較(@ arr1、@ arr2); $ COMP2->比較(@ arr1、@ arr2); 2つの配列がある場合は、それらが同じまたは異なるかどうかを知りたい場合は、Array :: Compareはあなたにとって役立ちます。比較器を介して行われます。物体。最も簡単な使用法では、このようなコンパレータオブジェクトを作成して使用できます.My @ ARR1 = 0 .. 10;私のarr2 = 0 .. 10。 My $ COMP = array :: compare-> new; if($ comp-> compare(@ arr1、@ arr2)){印刷 "配列はSAMEN"です。 erse {印刷 "配列が異なる";比較メソッドに2つの配列への参照を渡すことに注意してください.InterNallyは、コンパレータは結合を使用して2つのアレイを比較して両方の配列を文字列に変換し、EQを使用して文字列を比較します。接合された文字列では、元のアレイの要素は^ G文字で分離されています。これにより、アレイデータに2つの異なるアレイを同じ文字列に変換できる可能性がある場合には、アレイデータに^ G文字が含まれている場合に問題が発生する可能性があります。関数My $ COMP = array :: compare-> new(sep => '|');または既存のコンパレータオブジェクト$ comp-> sep( '|')を変更することによって。一般に、区切り文字を選択する必要がありますそれはあなたのデータに表示されません。比較を行うときに配列の要素内の空白が重要かどうかを制御することもできます。デフォルトでは、すべての空白が重要であるということです。この代わりに、すべての連続したホワイトスペース文字が比較の課題のために単一のスペースに変換されることです。繰り返しますが、これはコンパレータオブジェクトを作成するときにオンにすることができます。比較でデータの場合が重要かどうかを制御します。デフォルトでは、データの場合が考慮されます。これは、新しいコンパレータオブジェクトを作成するときに標準的な方法で変更できます.My $ COMP = ARRAY :: Compelal-> New(Case => 0);または既存のオブジェクトを変更することによって:$ comp-> case(0);上記の簡単な比較に追加(配列が同じである場合はtrueを返し、異なる場合はfalseが返されます)は、2つの配列間で異なる要素のインデックスを含むリストを返します。配列が同じである場合は、空のリストを返します。スカラーコンテキストでは、完全な比較はこのリストの長さを返します(すなわち、異なる要素数)。 2つの方法で完全な比較にアクセスできます。まず、デフル属性があります。これが本当であれば、比較方法が呼び出されるたびに実行された場合、完全な比較。マイ$ comp = array :: compare-> new(deffull => 1); $ comp->比較(@ arr1、@ arr2); #完全な比較$ comp-> deffull(0); $ comp->比較(@ arr1、@ arr2); #簡単な比較$ comp-> deffull(1); $ comp->比較(@ arr1、@ arr2); #完全な比較で、完全な比較で、完全な比較方法で直接$ comp-> full_compare(@ arr1、@ arr2)にアクセスできます。対称性のために、単純な比較を呼び出すために使用する直接的な方法もあります。 $ comp-> simple_compare(@ arr1、@ arr2);最終的な合併症は、比較の要素をスキップする能力です。 2つの配列が特定の要素で常に異なるが、この要素を無視して配列を比較したいことがわかっている場合は、配列スライスを取らずに配列::比較で行うことができます。これを行うために、コンパレータオブジェクトにはSkipというオプションの属性がハッシュへの参照である。このハッシュのキーは、配列要素のインデックスであり、値はスキップする必要がある要素の真の値であるべきです。たとえば、2つの配列を比較したい場合は、2つと4つの値を無視します。このようなもの:My%Skip =(2 => 1,4 => 1)。私の@A =(0,1,2,3,5)。私の@b =(0,1、x、3、x、5)。 My $ comp = array :: compare-> new(skip =>%skip); $ COMP->比較(@A、@B);これは、Skip HASHを使用してコンパレータオブジェクトを作成していたコースが異なる列を明示的に無視しているので、これはtrueを返すはずです。 comp-> skip({1 => 1,2 => 1});または:My%Skip =(1 => 1,2 => 2)。 $ comp-> skip(%skip);エレメントをスキップしなくなるようにコンパレータをリセットするには、スキップハッシュを空のハッシュに設定します。 $ comp-> skip({}); 1つの配列が別の配列の置換であるかどうかを確認することもできます。 ($ comp-> perm(@a、@b){印刷 "配列"; else "nope" nopeは完全に異なります。うまくいけば、明らかな理由で無視されます。


配列::比較 関連ソフトウェア