#!/usr/bin/perl use strict; use warnings; use Data::Dumper; # in welchem Verzeichnis willst du suchen my $workdir='/hier/pfad/zum/verezeichnis'; # da rein kommen alle Datensätze my %datensaetze; # Verzeichnis öffnen opendir(my $dir, $workdir) or die "Konnte Verzeichnis $workdir nicht oeffnen ($!)\n"; # Dateinamen einzeln auslesen while(my $dat=readdir($dir)) { # ist es wirklich eine Datei? if(-f "$workdir/$dat") { # Datei öffnen open(my $in, '<', "$workdir/$dat") or die "konnte Datei $workdir/$dat nicht oeffnen ($!)\n"; # Namen für den Hash generieren $dat=~s/^(.+?)\..+$/$1/s; # wenn noch kein hasheintrag mir dem Namen existiert einen erzeugen $datensaetze{$dat}={} unless (exists($datensaetze{$dat})); # Datei Zeilenweise auslesen while(my $line=<$in>) { # Zeilrnumbruch entfernen chomp($line); # Zeile aufsplitten my ($name,$wert)=split(/\s*,\s*/,$line,2); # Daten in den Hash schreiben $datensaetze{$dat}{$name}=$wert; } # Datei schließen close ($in); } } # Verzeichnis schließen closedir($dir); # alles gefundenen ausgeben print Dumper(\%datensaetze)."\n";