صفيف :: قارن

صفيف :: مقارنة هو امتداد بيرل لمقارنة المصفوفات.
التحميل الان

صفيف :: قارن الترتيب والملخص

الإعلانات

  • Rating:
  • رخصة:
  • Perl Artistic License
  • السعر:
  • FREE
  • اسم الناشر:
  • Dave Cross
  • موقع ويب الناشر:
  • http://search.cpan.org/~davecross/Array-Compare-1.14/lib/Array/Compare.pm

صفيف :: قارن العلامات


صفيف :: قارن وصف

صفيف :: قارن هو امتداد بيرل لمقارنة المصفوفات. Synopsis استخدام الصفيف :: قارن؛ بلدي $ comp1 = صفيف :: مقارنة-> جديد؛ $ comp-> سبتمبر ('|')؛ $ comp-> تخطي ({3 => 1، 4 => 1})؛ $ comp-> whitespace (0)؛ $ comp-> القضية (1)؛ بلدي $ comp2 = array :: مقارنة-> جديد (sep => '|'، whitespace => 0، case => 1، skip => {3 => 1، 4 => 1})؛ بلدي @ arr1 = 0 .. 10؛ بلدي @ arr2 = 0 .. 10؛ $ comp1-> قارن (@ arr1، @ ARR2)؛ $ comp2-> قارن (@ arr1 arr1، @ arr2)؛ إذا كان لديك صفيفان وتريد أن تعرف ما إذا كانت هي نفسها أو مختلفة، ثم صفيف :: قارن سيكون مفيدا لك. جميع المقارنات التي يتم تنفيذها عبر المقارنة يعارض. في أبسط استخدام، يمكنك إنشاء وكثة مقارنة واستخدامها مثل هذا: My @ arr1 = 0 .. 10؛ بلدي @ arr2 = 0 .. 10؛ بلدي شركات $ = صفيف :: مقارنة-> جديد؛ إذا ($ comp-> قارن (@ arr1، @ arr2)) {print "صفائف هي samen"؛ } آخر {"صفائف" مختلفة "؛ } لاحظ أنك تمرير المراجع إلى صفيفين إلى طريقة المقارنة. يقارن المقارنة بين المصفوفتين باستخدام الانضمام لتحويل كل من صفيفات إلى سلاسل ومقارنة السلاسل باستخدام EQ. في السلاسل المرتبطة، يتم فصل عناصر الصفائف الأصلية بحرف ^ g. يمكن أن يسبب هذا مشكلات إذا كانت بيانات صفيف تحتوي على أحرف ^ G لأنه من الممكن تحويل صفيفين مختلفين إلى نفس السلسلة. لتجنب ذلك، من الممكن تجاوز حرف الفاصل الافتراضي، إما عن طريق المرور والبديل إلى الجديد وظيفة بلدي شركات $ comp = array :: مقارنة-> جديد (sep => ')؛ أو عن طريق تغيير Seperator لكائن مقارنات موجود $ Comp-> Sep (' ')؛ بشكل عام يجب عليك اختيار حرف فاصل لن يظهر ذلك في بياناتك. يمكنك أيضا التحكم في ما إذا كان ينبغي اعتبار مساحة المسبقة داخل عناصر الصفائف مهمة عند إجراء المقارنة. الافتراضي هو أن كل Whitespace مهم. البديل هو لجميع الأحرف المساحة البيضاء المتتالية التي سيتم تحويلها إلى مساحة واحدة لاقتياح المقارنة. مرة أخرى، يمكن تشغيل ذلك عند إنشاء كائن مقارنة: My $ Comp = صفيف :: مقارنة-> جديد (Whitespace => 0)؛ أو عن طريق تغيير كائن موجود: $ comp-> whitespace (0)؛ يمكنك أيضا السيطرة على ما إذا كانت حالة البيانات مهمة في المقارنة أم لا. الافتراضي هو أنه يتم أخذ حالة البيانات في الاعتبار. يمكن تغيير هذا بالطرق القياسية عند إنشاء كائن مقارن جديد: My Comp Comp = صفيف :: مقارنة-> جديد (Case => 0)؛ أو عن طريق تغيير كائن موجود: $ comp-> case (0)؛ في بالإضافة إلى المقارنة البسيطة الموضحة أعلاه (والتي ترجع TRUE إذا كانت الصفائف هي نفسها وكاذبة إذا كانت مختلفة)، فهناك أيضا مقارنة كاملة ترجع قائمة تحتوي على فهارس العناصر التي تختلف بين المصفنتين. إذا كانت الصفائف هي نفسها، فستظهر قائمة فارغة. في سياق العددية، ترجع المقارنة الكاملة طول هذه القائمة (أي عدد العناصر التي تختلف). يمكنك الوصول إلى المقارنة الكاملة بطريقتين. أولا، هناك سمة DEFFULL. إذا كان هذا صحيحا، فستكون مقارنة كاملة إذا تم استدعاء طريقة مقارنة. بلدي شركات $ = صفيف :: مقارنة-> جديد (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 => 1، 4 => 1)؛ بلدي a = (0، 1، 2، 3، 4، 5)؛ بلديb = (0، 1، x، 3، x، 5)؛ بلدي $ comp = صفيف :: مقارنة-> جديد (Skip => تخطي)؛ $ comp-> مقارنة (@ a، @ bb)؛ هذا يجب أن يعود صحيحا، حيث أننا يتجاهلنا صراحة الأعمدة التي تختلف. في الدورة التدريبية، بعد أن أنشأ كائن مقارنة مع عدم تخطي التجزئة، من الممكن إضافة واحدة لاحقا: $ comp-> تخطي ({1 => 1، 2 => 1})؛ أو: My Skip = (1 => 1، 2 => 2)؛ $ comp-> تخطي ( تخطي)؛ لإعادة ضبط المقارنة بحيث لم تعد تتخطى العناصر، قم بتعيين تخطي التجزئة إلى التجزئة الفارغة. $ comp-> تخطي ({})؛ يمكنك أيضا التحقق لمعرفة ما إذا كان صفيف واحد هو أحد التقلبات الأخرى، أي تحتوي على نفس العناصر ولكن بأمر مختلف. إذا كان ($ comp-> perm (a، @ @ @) {print "صفائف imprsn"؛ {print "كلا. صفائف مختلفة تماما"؛} في هذه الحالة لا تزال قيم المسافة البيضاء والحالة تستخدم، ولكن تخطي يتم تجاهله، نأمل، أسباب واضحة. اليرقات: بيرل


صفيف :: قارن برامج ذات صلة