Accueil > Programmation > [PERL] Comparaison de 2 tableaux

[PERL] Comparaison de 2 tableaux

jeudi 25 juillet 2013


Il peut arriver d’avoir besoin de comparer 2 tableaux à l’image du diff utilisé habituellement en shell.

En perl, il est possible d’utiliser le package suivant : Array::Diff ;

L’installation de ce package sous Debian s’effectue de la façon suivante :
apt-get install libarray-diff-perl

Voici un exemple d’utilisation :

#!/usr/bin/perl -w

use strict;
use Array::Diff;

my @tab1=("eric","toto","sammy","mistigri","fish");
my @tab2=("eric","sammy","mistigri","fish");

my $diff = Array::Diff->diff( \@tab1, \@tab2);
print "Nombre d'éléments différents : ".$diff->count."\n";

my @manquant = @{$diff->deleted()};

print "\nSuppression\n";
foreach my $valeur (@manquant)
{       
        print $valeur."\n";
}

$diff = Array::Diff->diff( \@tab2, \@tab1);
print "\nNombre d'éléments différents : ".$diff->count."\n";

my @ajout = @{$diff->added()};

print "\nAjout\n";
foreach my $valeur (@ajout)
{       
        print $valeur."\n";
}

ce qui nous donne le résultat suivant :

Nombre d'éléments différents : 1

Suppression
toto

Nombre d'éléments différents : 1

Ajout
toto

Enregistrer au format PDF