1 2 3 4
# $Anrede kann sein: Herr, Frau oder leer (bzw. alles andere wird wie leer gewertet) $Anrede = $Anrede eq 'Frau' ? 'Sehr geehrte Frau' : $Anrede eq 'Herr' ? 'Sehr geehrter Herr' : 'Sehr geehrte Damen und Herren';
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#! /usr/bin/perl use strict; use warnings; while ( my $dataset = <DATA> ) { chomp $dataset; my ( $anrede, $titel, $vorname, $nachname ) = split m/;/, $dataset; # $anrede kann sein: Herr, Frau oder leer (bzw. alles andere wird wie leer gewertet) $anrede = $anrede eq 'Frau' ? "Sehr geehrte Frau" : $anrede eq 'Herr' ? "Sehr geehrter Herr" : 'Sehr geehrte Damen und Herren'; my $name = defined($titel) ? "$titel $nachname" : $nachname; print "$anrede $name\n"; } __DATA__ Herr;;Fritz;Mueller Frau;Dr.;Liese;Meier ;;;
1 2 3
$text = ";xx;xx;xxx"; # das ";" muss fuer die Suche da sein, wird aber nicht zum Treffer dazugezaehlt $text =~ s/^\s*(?=;)/Sehr geehrte Damen und Herren/;
2015-04-13T18:17:12 cowanIch benutze ein Programm, wo ich Adressen einlesen kann und kleine Einzeller-Skripte laufen lassen kann.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/perl -w
use strict;
my $DAT = <<"EOF";
Herr;xx;xx;xx
Frau;xx;xx;xx
;xx;xx;www
nix;xx;xx;xxx
unbekannt;xx;xx;xx
EOF
my $Anrede={"Herr" => "Sehr geehrter Herr",
"Frau" => "Sehr geehrte Frau",
"nix" => "Sehr geehrte Damen und Herren"};
foreach my $line(split("\n",$DAT)){
if(my @tmp=split(";",$line)){
if(scalar(@tmp) eq 4){
my $Titel=$Anrede->{'nix'}; # default Anrede
if (defined($Anrede->{$tmp[0]})){
$Titel=$Anrede->{$tmp[0]};
}
printf("%s %s %s %s\n",$Titel,$tmp[1],$tmp[2],$tmp[3]);
}else{
printf("Fehlerhafte Daten: $line\n");
}
}else{
printf("Fehlerhafte Daten: $line\n");
}
}