hilfdirselbst.ch
Facebook Twitter gamper-media

"Geht nicht" ist keine gültige Fehlermeldung!

MoD
Beiträge: 16
22. Aug 2003, 02:12
Beitrag #1 von 3
Bewertung:
(911 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Array und Hash


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 Top
 
X
oesi50  A  S
Beiträge: 2315
2. Sep 2003, 19:12
Beitrag #2 von 3
Beitrag ID: #49559
Bewertung:
(911 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Array und Hash


hi Mod,

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

Grüße Oesi
als Antwort auf: [#48215]
(Dieser Beitrag wurde von oesi50 am 2. Sep 2003, 19:13 geändert)
Top
 
zetetic
Beiträge: 1
27. Okt 2003, 15:38
Beitrag #3 von 3
Beitrag ID: #56270
Bewertung:
(911 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Array und Hash


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;
als Antwort auf: [#48215] Top