#!/usr/bin/perl use strict; use warnings; my $inputfilename = 'MeineEingabedatei.dat'; my $outputdir = 'MeinAusgabeVerzeichnis'; open my $in, '<', $inputfilename or die "$inputfilename: $!\n"; $/ = '$$$$'; # Datensatztrenner my $i = 0; # Zähler für Dateinamen auf Null initialisieren while (my $block = <$in>) { chomp $block; # Datensatztrenner abschneiden # Ausgabedateinamen formatieren, dreistellige Zahl mit führenden Nullen my $outfilename = sprintf ("./%s/Molekuel%03d.sdf", $outputdir, $i); # Block in Datei schreiben open my $out, '>', $outfilename or die "Ausgabe in $outfilename nicht möglich: $!\n"; print $out $block; # Das Schließen kann z.B. schief gehen, wenn zwischendurch die Platte vollläuft close $out or die "Schließen von Molekuel$i.sdf nicht möglich: $!\n"; ++$i; } close $in;