| Perl en vele andere programmeertalen gebruiken arrays om een lijst met gegevens op te slaan . Echter , Perl ondersteunt ook een bepaalde datastructuur genoemd een hash . Een Perl hash associeert een bepaalde waarde met een sleutel . Een voorbeeld is de hash { Jan = > 31 april = > 30 } , waarbij onder een maand een sleutel en een aantal dagen een waarde . Een Perl hash maakt het mogelijk om een eenvoudig algoritme om duplicaten uit een array te verwijderen ontwikkelen. De bijbehorende subroutine heeft minder dan tien opdrachten in Perl . Instructies Het creëren van een subprogramma " Remove_duplicates ; " een algoritme
 1
  verkrijgen array data en verklaren een hash " inzendingen. " Andere array genaamd " new_array " zal niet- gedupliceerde data bevatten . Stappen 1 tot 5 worden geïllustreerd met de Perl- code vermeld in paragraaf 2 , stap 3 . Kopen van 2   Toewijzen alle array-elementen als de hash sleutels en hash-waarden gelijk aan 1 voor alle toetsen toewijzen . 
 
  Loop 3 door alle elementen van de array en controleer de hash-waarde in verband met dit element . 4
  Als de hash-waarde is 1 ( zie stap 3 ) dan de element originele of niet gedupliceerd en worden toegevoegd aan " new_array . " In dezelfde tijd dat dit element wordt gemarkeerd , dwz de wijzigingen hash-waarde op 0 5
  Als de hash-waarde 0 is , dan is dit element al is opgetreden ; . Dat wil zeggen het wordt gedupliceerd en overgeslagen < . br > Voorbeeld en Perl Programma
 6
  Verwijder duplicaten uit de array met de elementen ( 1 2 6 7 2 9 1 2 6 ) . 7
  Print eerste en laatste arrays (zonder duplicaten ) 8
  # Sectie 1 # Subroutine Begint   sub remove_duplicates { my ( $ array , $ new_array ) = @ _ ; . # Stap 1 . Lees initiële arraymy % entries = ( ) ; # Stap 1 . Verklaren de hash
  foreach ( @ $ array ) { volgende wanneer voorhanden $ data { $ _ } ; $ data { $ _ } = 1 ; # Stap 2 }
  foreach ( @ $ array ) { # Stap 3 . Lus door alle scala elementsif ( $ data { $ _ } ) { # Stap 5 . Het element wordt overgeslagen Als hash-waarde is 0.push @ $ new_array , $ _ ; # Stap 4 . Voeg een element aan de nieuwe array alleen als hash-waarde is 1 $ data { $ _ } = 0 ; # Stap 4 . Het element wordt gemarkeerd dwz de hash- waarde naar 0 . }
 
  } }   # Subroutine Eindigt
 
  # Sectie 2MY $ array = [ qw ( 1 2 6 7 2 9 1 2 6 ) ] ; # Stap 1 : een voorbeeld arraymy $ new_array = [ ] ; # remove_duplicates ( $ array , $ new_array ) ; print " @ $ array \\ n " ; # Stap 2 . Afdrukken aanvankelijke arrayprint " @ $ new_array \\ n " ; # drukken finale arrayexit ; 
 
 |