title: Compare files and check if something that exists in one file doesn't exist in other file
body: <p>i have two files, one containing all active user loginnames, and the other one containing permissions with user logins that don't exist in the active users file anymore, so i want to compare these and filter out the user names that no longer exist, but i have no clue how to get started. I have filtered out the the usernames from both files, and they are in two separate arrays. Here's my whole code, warning, it contains other stuff that i need the program to do so just act like it doesn't exist. And also Warning, don't worry about the Comments, it's German, it's only for me to know what does what.</p>
  
  <pre><code>#!/usr/bin/perl
  
  use strict;
  #use warnings;
  use utf8;
  use Data::Dumper;
  
  my $usernames = 'usernames.txt';
  my $permissions = 'ab1000.prm';
  my $prmlogins = 'prmlogins.txt';
  
  # Programme ausführen
  clean_permissions();
  
  # Subroutinen
  # Subroutine welche die gewünschte Datei Zeile für Zeile ausgibt
  sub read_lines {
      my($file) = @_;
  
      open my $in, "&lt;:encoding(utf8)", $file or die "$file: $!";
      local $/ = undef;
      my $content = &lt;$in&gt;;
      close $in;
      return split /\n/, $content;
  }
  
  sub clean_permissions {
  
      my $counter = 0; # Zählervariable wird definiert
      my @adnutzer = ''; # Array für Nutzernamen wird definiert
      my @ab1000prm = read_lines('ab1000.prm'); # Zeilen des Dokuments werden eingelesen
      my @adnames = read_lines('ad_user.csv'); # Zeilen der CSV mit Subroutine in Array einlesen
      my $zeilenzaehler = 1; # Zeilenzähler wird definiert
      my $zeilen = ''; # Variable in der die Anzahl der Zahlen gespeichert werden
      my @prmnutzer = '';
  
  
      foreach(@adnames) { # Über das erstellte Array itirieren
        $counter++; # Zähler für Zeilenanzahl
        next if ($counter eq 1); # Erste Zeile überspringen
        my @tmp = split(';', $_); # Spalten am Semikolon trennen
        push(@adnutzer, uc($tmp[3])); # Vierte Spalte (Userlogins) in Array pushen
      }
  
      foreach(@ab1000prm) { # Über die Permissions datei itirieren
        my $wortzaehler = length($_); # Variable zum Zählen von Zeichen in einer Zeile
          $zeilen = $zeilenzaehler++; # Zeilenzähler wird der Zeilen Variable zugewiesen
  
        if ($wortzaehler &gt; 255) { # Wenn eine Zeile mehr als 255 Zeichen hat:
          #print ("Zeile $zeilenzaehler behinhaltet: $wortzaehler zeichen!\n"); # Wird die Nummer der Zeile und die Anzahl and Zeichen ausgegeben
        }
  
      next if /^#/; # Zeilen mit '#' werden übersprungen
        my @tmp = split(":", $_); # Übrigen Zeilen werden am ':' getrennt und in temporäres Array gepackt
        @prmnutzer = split(",", $tmp[1]); # Der wichtige Teil der Zeilen wird in Array gepackt
      }
  
      #print("Das Dokument beinhaltet: $zeilen Zeilen!\n"); # Anzahl der Zeilen wird ausgegeben
  
  }
  </code></pre>
  
  <p>The Permissions file looks like this:</p>
  
  <pre><code>## 
  !*EDIT.FIRMA.FIR_BELEGNR_007:
  
  ## Sperrt im Einkauf das Editieren des ursp. Bestelltermins
  !*EDIT.POSITIONEN.POS_TERM2:
  
  ## 
  !INFOPT*ARTSTAT.AST_BSTWERT:EDV,EK,EKL,GF,KSLMITEK,VT,EKIWE,EKTEC,KSIWE,EKHOT
  
  ## SperrtdieStammdateninderArtikelverwaltung.
  ART_VERW*M0805.1:
  
  ## 
  !*EDIT.EINKVERBAND.EKV_X_SZBNR:KATEI,EDV,MHERGEN,CJANSSENS
  
  ## SperrteditierenvobRabattB-ArtikelimKunden
  !*EDIT.KUNDEN.KDN_GRRAB_002:EDV,MGREB,JEIFERT,CJANSSENS,RWAUMANS,NWACHALL
  </code></pre>
  
  <p>The usernames are listed after the ":" everything before that is irrelevant.</p>
  
  <p>And the Active Users File looks like this:</p>
  
  <pre><code>FAX800
  LABDELHALIM
  DABEL
  LABU
  UACKERMANN
  DADAEM
  CADLER
  SADOLF
  FAFF
  KAGOCS
  JAHLHEIM
  JAIGNER
  KAIZELKSNIS
  NAKGUEN
  DALAERTS
  JALBERS
  SALBERT
  SALBERTSILA
  FALBERTS
  SALBRECHT
  AALEX
  MALGAC
  BALLES
  YALTUNTAS
  SAMBERG
  KAMESEDER
  BAMLING
  CAMLUNG
  UAMSUESS
  KANDERS
  MANDRAE
  AANDRAE
  GAND
  AANTO
  EAPPEL
  AAPPEL
  AAPPELWILPEG
  BAPTOULACH
  </code></pre>
  
  <p>Thats just a snippet, the file has about 2000 lines...</p>
  
  <p>And also i edit on Mac OS, if that's relevant.</p>
  
  <p>ps. Im really new to Perl and Programming in General :D</p>