use strict; use warnings; use Data::Dumper qw(Dumper); my ($datei, @zeilen, %hash); $datei = 'test.txt'; sub reg_exe { $_ = lc($_); $_ =~ s/\W+|\d|_/ /g; $_ =~ s/^\s+|\s+$//; } # Datei wird zeilenweise ausgelesen und in Array geschrieben # (pro Index eine Zeile) open(DATEI, "<$datei") || die "$datei kann nicht geoeffnet werden: $!"; @zeilen = ; foreach(@zeilen) { reg_exe(); } print Dumper \@zeilen; # Datei wird zeilenweise ausgelesen --> in Wörter gesplittet, # in Hash abgelegt und Anzahl der Häufigkeit ermittelt open(DATEI, "<$datei") || die; while (){ foreach(split(/ /, $_)) { reg_exe(); $hash{$_}++; } } print Dumper \%hash; # Ausgabe AoH # ... close(DATEI);