use Spreadsheet::SimpleExcel; my $xls = Spreadsheet::SimpleExcel->new; $xls->add_worksheet( 'Adressen' ); open my $fh, "<", "adressen.txt" or die $!; local $/ = "jetzt eintragen!\n"; # als paragraphentrenner betrachten chomp(my @p = <$fh>); for my $paragraph (@p) { my (undef, $name, $address) = split /\n/, $paragraph; my ($street, $city, $phone) = split / (?=\d{5} |\(\d{3,5}\) )/, $address, 3; $xls->add_row( [ $name, $street, $city, $phone ] ); } $xls->output_to_file( 'test.xls' );