#!C:/Programme/Perl use strict; my $input='Input.csv'; my $output='Output.csv'; my $mapping='Input_format.csv'; my $zeileDaten; my @arrayDaten; my $inputDaten; my @inputarray; my @outputarray; open MAPPING, "<$mapping" or die "Datei $mapping konnte nicht geöffnet werden"; open INPUT, "<$input" or die "Datei $input konnte nicht geöffnet werden"; open OUTPUT, ">$output" or die "Datei $output konnte nicht geöffnet werden"; while (){ chomp; $zeileDaten ="$_\n"; push(@arrayDaten,$zeileDaten); } close (MAPPING); while (){ chomp $inputDaten; @inputarray = split (/;/, $inputDaten); foreach $mapping (@arrayDaten) { my ($Stelle, $ZielStelle, $Laenge, $Typ) = split(/;/,$mapping); if ($Typ eq 'Numerisch') { $outputarray[$ZielStelle] = sprintf("%0" . $Laenge . "d", ($inputarray[$Stelle] or 0)); } elsif ($Typ eq 'Alphanumerisch') { $outputarray[$ZielStelle] = sprintf("% " . $Laenge . "s", ($inputarray[$Stelle] or '')); } } print join (";", @outputarray) . "\n"; #print OUTPUT join (";", @outputarray) . "\n"; } close (INPUT); exit;