my $filename = "xyz.txt"; # 1. Datei zum lesen oeffnen # beim open immer fehler abfangen, sonst geht spaeter mal was # schief und man sucht an der falschen stelle open (my $FH, "<", $filename) or die "Error: couldn't read file '$filename': $!\n"; # 2. Dateiinhalt in ein Array einlesen # und eventuell zeilenumbrueche am ende wegwerfen my @lines = <$FH>; chomp(@lines); # 3. Datei schliessen close ($FH); 4. Datei in einen String verwursten my $text = join(" ", @lines); # besser als "@lines", weil unabhaengig von $" # stattdessen kann man auch schreiben: # my $text = do { # open (my $FH, "<", $filename) or die $!; # local $/; # undef # my $text = <$FH>; # close $text; # eigentlich mit my $FH ueberfluessig # $text; # zurueckgeben # }; # nur wird halt da nicht mit einem leerzeichen gejoined, sondern # die zeilenumbrueche bleiben drinnen stehen; das kann man # aber mit $text =~ s/\n/ /g; korrigieren # 5. an einer bestimmten stelle aufsplitten my @parts = split(/[Dd]u/, $text); # schleife mit index foreach my $i (0..$#parts) { print "This: $part[$i]\n"; if ($i < $#parts) { print "Next: ", $part[$i+1], "\n"; } else { print "Next: ### EOF erreicht ###\n"; } } # foreach