linux-l: perl und hashes...

Jens Dreger jens.dreger at physik.fu-berlin.de
Di Mai 22 08:02:21 CEST 2001


On Tue, May 22, 2001 at 07:56:17AM +0200, Ulrich Wiederhold wrote:
> Hallo,
> * Jens Dreger <jens.dreger at physik.fu-berlin.de> [010522 04:37]:
> > Was ist denn das fuer eine haarstraeubende Problembeschreibung!
> > Nochmal.
> Und ich hatte mir solche Mühe gegeben...
> 
> Also, ich bekomme eine Liste, bei der einem unbekannten namen 3
> attribute folgen, dann ein Doppelpunkt, nächster Name, wieder 3
> Attribute, :, nächster Name.
> also so:
> name1 attr1a attr1b attr1c : name2 attr2a attr2b attr2c : name3 attr3a
> attr3b attr3c : ... : namen attr1n attr2n attr3n
> 
> Diese Informationen will ich in ein hash spliten, also eigentlich so,
> wie Du das schon gemacht hast. Nur eben automatisch einsortieren, da die
> Array-länge (also die spätere Anzahl der keys) unbekannt ist.
> 
> > %H = (
> >       'name1' => { 'attr1' => "this is n1attr1 content",
> > 	         'attr2' => "this is n1attr2 content"
> > 			  },
> >       'name2' => { 'attr1' => "this is n2attr1 content",
> > 	         'attr2' => "this is n2attr2 content"
> > 			  }
> >      );
> 
> Jetzt verständlicher?

Ich verstehe nicht, was Du mit "Inhalt von attA2" meinst (siehe Deine
erste mail). Was fuer eine Inhalt? Wo steht der? Wie waere es mit
einem Beipiel mit echten Daten?

Willst Du eine Zeile der Form:

       name1 attr1a attr1b attr1c : name2 ....

in ein Hash packen? Und wenn ja, was steht dann bei "attr1a" ? Steht
da ein String ? Stehen da 20MB Daten? Mir ist das Problem vollkommen
unklar.

Wenn es um eine Zeile wie oben geht, dann einfach split mit /:/ danach
split mit /\s/ und dann in anonyme Hashes. Wo ist das Problem ?

Gruss,

Jens.



Mehr Informationen über die Mailingliste linux-l