Thread mehrere hashes übergeben an Sub (8 answers)
Opened by chmod777 at 2021-01-05 06:53

haj
 2021-01-05 11:04
#193079 #193079
User since
2015-01-07
551 articles
BenutzerIn

user image
2021-01-05T05:53:49 chmod777
1.) übergabe in der sub mit "my $href = shift;" korrekt?
Ja, das ist korrekt.

2021-01-05T05:53:49 chmod777
2.) Wie wird in der Sub auf die einzelnen hash-variable zugegriffen bzw. diese abgefragt.

Eine Ergänzung zu den Erläuterungen von Bianca und GwenDragon: Du kannst auch direkt auf einzelne Elemente der Hashes zugreifen. Im Beispiel von GwenDragon erhältst Du zum Beispiel mit $href->{adresse}{Strasse} den Wert 'Morgula Av. 11-B'.
GwenDragons Code baut Kopien der Hashes auf. Beim direkten Zugriff arbeitest Du dagegen mit den Hashes des Aufrufers. Du kannst zum Beispiel im Unterprogramm schreiben:
Code (perl): (dl )
$href->{adresse}{Land} = 'Programming Republic of Perl';
und nach dem Aufruf des Unterprogramms merkt auch der Aufrufer, dass sich die Staatsform von Perlistan geändert hat.
Das kann entweder unerwünscht - oder genau der Sinn der Sache sein!

2021-01-05T05:53:49 chmod777
3.) Gibt's "best practice" und ev. einen Link oder ein Tutorial?

Ein kurzer Klassiker ist Perldoc:perlreftut von Mark-Jason Dominus.

Zu "best practice" gibt's viele Meinungen, da halte ich es mit Larry Wall (oder war's Damian Conway?): In Perl gibt es viele Möglichkeiten, warum also nicht die lesbarste hinschreiben? In Deinem konkreten Fall würde ich die obere Hash-Stufe weglassen, so wie Bianca das vorgeschlagen hat.

View full thread mehrere hashes übergeben an Sub