my $filename = "blablablubb.txt"; unless (open (FILE, "<", $filename)) { die "Error: couldn't read file '$filename': $!\n"; } # unless else { local $/ = "\n\n"; # nicht zeilen, sondern bloecke lesen (trenner ist \n\n) while () { # $_ enthaelt nun jeweils einen ganzen block chomp($_); # \n\n am ende entfernen my ($date, @rest) = split(/\n/, $_); # aufsplitten nach \n, erste zeile $date zuweisen my %data = (); foreach my $line (@rest) { my ($key, $value) = split(/\s*=\s*/, $line, 2); # an = aufsplitten in maximal 2 teile $key =~ s/^\s+//; # leerzeichen am anfang abschneiden $data{$key} = $value; # wenn $key mehrmals vorkommt, ueberschreibst du dir aeltere keys } # foreach # mach was mit $date und %data, z.B. print "Datum: $date\n"; foreach my $key (sort keys %data) { print "$key: $data{$key}\n"; } # foreach print "-" x 60, "\n"; } # while close (FILE); } # else