Hallo Ratti, hallo Leute, Am Dienstag, 13. Dezember 2005 20:13 schrieb Ratti:
Ich habe ein Problem mit perl. Folgende Variable verstehe ich nicht:
@data=[ objectClass => [ "top", "person", "inetOrgPerson" ] , cn => $cn , sn => $nachname , homePhone => $telefon , mail => $email , givenName => $vorname , postalAddress => "$strasse , $plz , $ort" , postalCode => $plz , street => $strasse , o => $firma , l => $ort ];
LDAPentryCreate( $ldap, "cn=$cn,$people", @data );
Mein Problem: Es gibt einige Felder, die undefiniert seien können, z.B.: Telefonnummer nicht bekannt. LDAP erlaubt mir nicht, leere Felder dafür zu schreiben. Deswegen will ich obige Monstervariable leer initialisieren und nur die Attribute füllen, die tatsächlich definiert sind.
Es gelingt mir aber leider nicht, diese Struktur so zu entwirren, dass ich in etwa sowas habe:
@data=[]; # Leer machen
if ($mail) { $data[0]{'mail'} = $mail; } if ($phone) { $data[0]{'phone'} = $phone; } if ($plz) { $data[0]{'plz'} = $plz; } if ($handy) { $data[0]{'handy'} = $handy; } if ($ort) { $data[0]{'ort'} = $ort; } if ($firma) { $data[0]{'firma'} = $firma; }
LDAPentryCreate( $ldap, "cn=$cn,$people", @data );
Diese Syntax " $data[0]{'plz'} = $plz; " ist falsch. Wie lautet die richtige?
Gute Frage - jedenfalls ist mir auf den ersten Blick unklar, woher Du das [0] hast. Probiers mal ohne ;-)
Vor mir liegt ausgedruckt perlref, perldsc, perldata und perlvar randvoll mit den bescheuertsten ist-nicht-geil-was-alles-geht?- Beispielen , aber leide keine vernünftige Erklärung...
;-)
P.P.S.: Gibt es für perl sowas wie "print_r" unter php, das einem jede noch so komplexe Variable formatiert auf dem Bildschirm aufdröselt?
Du solltest öfter mal in fontlinge-devel reingucken *hint*. Ich zitiere beispielsweise eine Mail von David Haller vom 7.4.2005 ("Re: Indizies checken") | perldoc Data::Dumper hilft bei komplexen Datenstrukturen ungemein, | z.B. 'print Dumper(\%mein_hash)'. | | Achtung: Dumper erwartet eine Referenz auf die auszugebende Variable, | ansonsten nimmt es ein Hash z.B. als Liste auszugebender Variablen an. | | Also, wenn du ein Hash hast: 'print Dumper(\%hash)' und wenn man schon | eine Referenz hat: 'print Dumper($hashref)'. Weiter unten im Thread (19.4.2005) hat David dann auch ein Anwendungsbeispiel von Data::Dumper gezeigt. perldoc Data::Dumper' ist natürlich auch lesenswert ;-) Ach ja: use strict; use warnings; hast Du ja vermutlich schon, oder? Gruß Christian Boltz --
Bitkollisionen finden v.a. in Kneipen und Festzelten statt, würde ich mal annehmen. [H. Bengen] Und zu viele davon führen zu einem stomach overflow? [L. Barth]