#!/usr/bin/perl use warnings; use strict; my $infile = 'Partnerlist_05_13.csv'; my $outfile = 'neu.csv'; open my $INFH, '<', $infile or die "open(ro,$infile): $!\n"; open m< $OUTFH, '>' $outfile or die "open(w,$outfile): $!\n"; while (local $_ = <$INFH>) { # Teil 1 s{Versicherungsmakler}{Vers.-Makler}i; # Reihenfolge der Alternativen ist wichtig s{Versicherung(?:s-?|en|)}{Vers.-}i; # da Gross/klein egal ist (/i), braucht es kein Match für "Unab.." s{unabhängig(?:er?)}{unabh.}i; s{Geschäftsstelle}{GSt.}i; # () als Suchstring muessen maskiert werden! s{\(?haftungsbeschränkt\)?}{}i; # Teil 2 chomp; my @fields = split /;/, $_; for my $field ( @fields ) { if ( length($field) > 30 ) { $field = substr($field, 0, 30 ); } } # $/ wurde durch chomp() entfernt, hier fuegen wir es wieder an $_ = join( ';', @fields ) . $/; # Teil 3 # dort wo "Gmb" oder "Gm" oder "G" als Wort endet, wird es entfernt # kann klappen, muss aber nicht; ein "GmbH & Co KG" verliert auch das letzte "G" !!!! s{(?Gmb|Gm|G)\b}{}g; # daher vielleicht lieber auch vorne auf Wortgrenze pruefen #s{\b(?Gmb|Gm|G)\b}{}g; print OUTFH; } close $INFH; close $OUTFH or die "close($outfile): $!\n";