perl - mir unverstaendliche Variablenstruktur

Joerg Rossdeutscher <[email protected]>
Newsgroups gmane.linux.suse.programming
Organization Gesindel
Message-ID <[email protected]>
Moin,

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?

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...

Danke fürs Abhalten vom Freitod,
Gruß,
Ratti



P.S.: Falls es wichtig ist:

sub LDAPentryCreate {
	my ($ldap, $dn, $whatToCreate) = @_;
	my $result = $ldap->add ( $dn, attrs => [ @$whatToCreate ] );
	if ( $result->code ) {   LDAPerror ( "Error", $result ); }
	return $result;
}

...und weil da auch schon wieder sowas komisches drin ist:   [ @ 
$whatToCreate ]   ...bitte obigen Datentyp @data nicht ändern, denn  
dann weiss ich nicht, was hier hin gehört.


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?

-- 

-- 
 -o) fontlinge | Fontmanagement for Linux | Schriftenverwaltung in Linux
 /\\ http://freshmeat.net/projects/fontlinge/
_\_V http://www.gesindel.de https://sourceforge.net/projects/fontlinge/


++++++++++++++++++++++++++++++++++++++++++++++++++++++++
red dot awards für hohe Designqualität
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Bei den red dot awards erhielten die Projekte
A&W - Designer des Jahres 2005 und COR Lesereise awards
für hohe Designqualität. Freuen Sie sich mit uns!
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
joerg_rossdeutscher.vcf (text/directory, 338 B)
BEGIN:VCARD
VERSION:2.1
N;CHARSET=LATIN1:Roßdeutscher;Jörg;;;
FN;CHARSET=LATIN1:Jörg Roßdeutscher
ORG:Factor Design AG;
EMAIL;INTERNET;WORK:[email protected]
TEL;WORK:040 432571-43
ADR;WORK:;;Schulterblatt 58;Hamburg;;20357;Deutschland
NOTE: Technik\, Web\, DTP\, SysAdmin
URL:www.factordesign.com
END:VCARD
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQBDnx1oCGbv12v1ACwRAkm3AJ0frE4RTbeH0YYBFfqhCAyeKtiD6gCfaSJW
fYGdIbjDAp5bzDpDy2wLuvM=
=rhfh
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.