Hallo,ich möchte gerne einige Einträge aus unserem LDAP (Name, Telefonnummer und Abteilung) in eine CSV-Datei umwandeln.
Das funktioniert schon mehr oder weniger gut.
use Net::LDAP;my $ergebnis;
sub Umlauteersetzen {
my ($variable) = @_;
$variable =~ s/ä/ae/g;
$variable =~ s/ö/oe/g;
$variable =~ s/ü/üe/g;
$variable =~ s/Ä/Ae/g;
$variable =~ s/Ö/Oe/g;
$variable =~ s/Ü/Ue/g;
$variable =~ s/ß/ss/g;
return($variable);
}
open(SCHREIBEN, ">LDAP-TEST.csv") or die "Fehler beim Öffnen von 'LDAP-TEST.csv': $!\n";
$ldap = Net::LDAP->new( 'ldap://ldapserver' ) or die "$@";
$base = "o=ldap1";
$filter= "(&(ou=IT*)(telephonenumber=*))" ;
$mesg = $ldap->bind ; # an anonymous bind
$ergebnis = $ldap->search(base=>"$base",filter=>"$filter");
print SCHREIBEN "ID,Vorname,Nachname,Telefonnummer,Abteilung\n";
$max = $ergebnis->count;
$test1= "Häns";
$test2= "Dampfö";
print $test2." ".$test2."<-alt\n";
$test3= lc($test1.".".$test2);
$test3= &Umlauteersetzen($test3);
print $test3."<- neu\n";
for ( $i = 0 ; $i < $max ; $i++ ) {
$entry = $ergebnis->entry($i);
$User_ID = $entry->get_value('cn');
$Vorname = $entry->get_value('givenName');
$Nachname = $entry->get_value('sn');
$Telefon = $entry->get_value('telephoneNumber');
$Abteilung = $entry->get_value('ou');
# Änderungen der Felder
$User_ID = lc($Vorname.".".$Nachname);
print "Vorher: ".$User_ID."\n";
$User_ID =~ s/ä/ae/g;
$User_ID =~ s/ö/oe/g;
$User_ID =~ s/ü/üe/g;
$User_ID =~ s/Ä/Ae/g;
$User_ID =~ s/Ö/Oe/g;
$User_ID =~ s/Ü/Ue/g;
$User_ID =~ s/ß/ss/g;
# Schreiben
$zeile = $User_ID.",".$Vorname.",".$Nachname.",".$Telefon.",".$Abteilung."\n";
# print $i."\n";
print SCHREIBEN $zeile;
}
print "\nEs wurden ".$max." Eintraege geschrieben !\n\a";
$ldap->unbind();
$mesg = $ldap->unbind; # take down session
close(SCHREIBEN) or die "Fehler beim Schließen von 'LDAP-TEST.csv': $! \n";
Alle Daten werden schön weggeschrieben.
Allerdings möchte ich, wie im Scipt evlt. ersichtlich die Umlaute ändern. Also "ä" in "ae", Ö in oe usw.
Bin hierbei aber am Verzweifeln.
Außerhalb der "for-schleife" funktionieren nahezu alle scripte und Änderungen. Aber sobald ich z.B. die Funktion "sub Umlauteersetzen()" innerhalb der Schleife verwende geht nix mehr !
Hat einer von euch evtl. ne Idee woran das hängt ?
Datum: 29.07.2008-16:47
