Forenindex » Archiv » Perl und CGI » Array und Hash

Array und Hash

MoD
Beiträge gesamt: 16

22. Aug 2003, 02:12
Bewertung:

gelesen: 1092

Beitrag als Lesezeichen
Ich hab zwei Hauptanliegen:

1. Wie baut man einen 2-dimensionalen Array mit einem Hash als zweite Dimension ?

$Array[Zahl][%Hash] = geht nicht (ansonsten würde der Hash mit z.B verschiedenen Werten aus einem split-Command gefüllt)

und gleich meine zweite Frage:

kann man split auch auf einen Hash anwenden ?

Danke für Eure Antworten

MoD

Array und Hash

oesi50
  
Beiträge gesamt: 2315

2. Sep 2003, 19:12
Bewertung:

gelesen: 1092

Beitrag als Lesezeichen
hi Mod,

versuch doch mal 'perldoc perldsc' einzutippen, da steht alles.

Grüße Oesi

(Dieser Beitrag wurde von oesi50 am 2. Sep 2003, 19:13 geändert)

Array und Hash

zetetic
Beiträge gesamt: 1

27. Okt 2003, 15:38
Bewertung:

gelesen: 1092

Beitrag als Lesezeichen
Mehrdimensionale Arrays und Hashes kann man in Perl nur mit Referenzen erzeugen. Um einen Hash als zweite Dimension in ein Array einzuführen, erzeugst Du mit dem Backslash-Operator eine Referenz auf den Hash und legst diese Referenz im Array ab. Zu

Beispiel:
%artikel = (
farbe => 'gruen',
preis => '34.50',
groesse => 'M'
);

$arr[0] = \%artikel;

Test:
print $arr[0]->{farbe}, "\n";
print $arr[0]->{preis}, "\n";
print $arr[0]->{groesse}, "\n";

Der Pfeil kann auch weggelassen werden, so dass
print $arr[0]{farbe}, "\n";
print $arr[0]{preis}, "\n";
print $arr[0]{groesse}, "\n";
das gleiche Resultat ergibt.

Statt mit einer Referenz auf einen benannten Hash kann man auch eine Referenz auf einen anonymen Hash erzeugen, wodurch man sich die Backslash-Schreibweise erspart; zu beachten ist jedoch, dass man den anonymen Hash mit geschweiften Klammern einfasst:

$artikel = {
farbe => 'gruen',
preis => '34.50',
groesse => 'M'
};

$arr[0] = $artikel;