$hash{AL}="052001"; $hash{AB}="052003"; $hash{HX}="052363"; $hash{BRE}="052324"; #Um switch anweisung zu benutzen use Switch; # Eingabedatei öffnen # Ausgabedatei-normalfälle öffnen # Ausgabedatei-sonderfälle öffnen #schleife while(<>){ # Eingabedatei zeilenweise lesen chop; $org=$_; @array=split; # $array[0]: Gemarkungsbezeichnung # $array[1]: "FL" # $array[2]: Flur nummer # $array[3]: "NR" # $array[4]: Flurstücksnummer (z.B. 42 oder 260/285) $Gemarkungsnummer=$hash{$array[0]}; $Flurnummer=$array[2]; $Flurstuecksnummer=$array[4]; # aufsplitten in Zaehler und Nenner ($Flurstuecksnummerzaehler,$Flurstuecksnummernenner)=split ("/",$Flurstuecksnummer); # aufsplitten in Zaehler und Nenner #schaut ob im string ein "+" vorkommt, wenn ja wird das "+" durch "+0" getauscht if ($array[2] =~ "\\+"){ $array[2] =~ s/\+/\+0/; } #abfrage ob im String "NR" vorkommt if($array[4] != "NR") { # print "$_ $hash{$array[0]}-0$array[2]-$nullen$array[4]/000.00 $array[5] $array[6] $array[7]\n"; printf "%s\t%s-%03u-%05u/%03u.00\t \n", $org, $Gemarkungsnummer, $Flurnummer, $Flurstuecksnummerzaehler, $Flurstuecksnummernenner; } else { #print "$_ $hash{$array[0]}-0$array[2]\n"; printf "%s\t%s-%03u \n", $org, $Gemarkungsnummer, $Flurnummer, $Flurstuecksnummerzaehler, } #print "$_\n"; } open(my $fhFertig, ") { print $fhFertig $_; } # while close($fhFertig) or die $!;