Zum Inhalt springen

Perl: Zugriff auf Hashwerte


Empfohlene Beiträge

HI Leute,

ich darf seit gestern Perl programmieren und hab zuvor noch nie etwa damit zu tun gehabt, bin als n00b auf dem Gebiet!

Hier mein Problem:

Wie greif ich auf Werte im Hash zu?

Hab ein Script welches Daten aus einer Datei liest und diese dann in den Hash packt, die (so wurden sie mir genannt) Referenzen auf den Hash werden von der Funktion zurückgegeben:

return ( $Prodicat, $Prodat_gefunden, $Pricat_gefunden, \%Prodat_Orgid, \%Pricat_Orgid );
\%Prodat_Orgid, \%Pricat_Orgid sind die beiden Werte die ich brauch So kommen sie bei mir zurück:
(undef, undef, undef, %prohash, %prihash) = Pruefen_ob_Prodat_und_oder_Pricat_Datei($file);

So hab ich es in anderen Scripts gesehen und so stehts auch in den Perlbüchern hier, aber die Weiterverarbeitung funktioniert einfach nicht, wie kann ich nun auf die einzelnen Werte zugreifen???

THX

Link zu diesem Kommentar
Auf anderen Seiten teilen

Lies Dir mal durch wie Referenzen in Perl funktionieren, z.B. in der Manpage (man perlref).

Du bekommst eine Referenz auf einen Hash, nicht den Hash. Die Zeile muss also so lauten:

(undef, undef, undef, $prohash, $prihash) = Pruefen_ob_Prodat_und_oder_Pricat_Datei($file);

Auf die Elemente in diesem Hash greift man dann nicht mit $prohash{element} sondern mit $prohash->{element} zu.

Der Vorteil von Referenzen ist in diesem Beispiel, dass der benutzte Speicher des Hashes bei der Rückgabe nicht kopiert werden muss (und so ein Hash kann groß werden), sondern nur die 4 Byte für die Referenz (auf einem 32 Bit System). Kann also eine enorme Speicherersparung sein.

Bleib also am Ball, es ist wichtig den Umgang und vor allem auch den Grund für den Einsatz von Referenzen zu verstehen!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...