Perl et bien d'autres langages de programmation utilisent des tableaux pour stocker une liste de données . Cependant , Perl prend également en charge une structure de données spécifique appelée hachage. A associe hachage Perl une valeur particulière avec une clé. Un exemple est le hash { Jan => 31 Apr => 30} , dans lequel un mois est une clé et un nombre de jours est une valeur . Un hachage Perl permet de développer un algorithme simple pour supprimer les doublons d'un tableau. Le sous-programme correspondant a moins de dix commandes en Perl . Instructions
Création d'un sous-programme " Remove_duplicates , " un algorithme
1
obtenir des données de tableau et déclarer un hash " entrées ". Un autre tableau appelé " new_array " contiendra des données non dupliqués. Les étapes 1 à 5 sont illustrés par le code Perl donnée à l'article 2 , étape 3.
2
Attribuer tous les éléments du tableau que les clés de hachage et d'attribuer des valeurs de hachage égaux à 1 pour toutes les touches .
3
boucle à travers tous les éléments du tableau et vérifier la valeur de hachage associée à cet élément.
4
Si la valeur de hachage est 1 ( voir l'étape 3 ) puis l' élément est original ou pas en double et il convient d'ajouter à " new_array . " Dans le même temps, cet élément est marqué , à savoir les changements de valeur de hachage à 0
5
Si la valeur de hachage est 0, alors cet élément a déjà été rencontrés; . C'est à dire qu'il est dupliqué et sauté < . br>
exemple et Perl Programme
6
Supprimer les doublons dans le tableau avec des éléments ( 1 2 6 7 2 9 1 2 6).
7
Imprimer des tableaux initiaux et finaux ( sans doublons )
8
# Section 1 # sous-programme commence
sous remove_duplicates
{ my ($ array , $ new_array ) = @ _; . Étape # 1 . Lire % des entrées de arraymy initiales = (); # Étape 1 . Déclarer le hachage
foreach ( @ $ array ) {next if exists $ entries { $ _ } ; $ entrées { $ _ } = 1; # Étape 2 }
foreach ( @ $ array ) {# étape 3 . Boucle à travers tous ensemble elementsif ( $ entries { $ _ }) { # Etape 5 . L'élément est ignorée si la valeur de hachage est 0.push @ new_array $ , $ _ ; # Etape 4 . Ajouter un élément à la nouvelle matrice uniquement si la valeur de hachage est de 1 $ entries {$ _} = 0; # Etape 4 . L'élément est marqué dire changer la valeur de hachage à 0. } }}
# Subroutine termine
# Section 2Dates $ array = [ QW ( 1 2 6 7 2 9 1 2 6]); # Etape 1: un exemple arraymy new_array $ = []; # remove_duplicates ( $ array , $ new_array ); print " @ tableau $ \\ n"; # Étape 2 . Impression arrayprint initial " @ $ new_array \\ n"; # impression arrayexit final;