Thread Block vs. Hashref (25 answers)
Opened by barney at 2024-08-02 13:17

rosti
 2024-08-08 13:27
#196647 #196647
User since
2011-03-19
3463 Artikel
BenutzerIn
[Homepage]
user image
tie bindet einen abstrakten Datentyp (im Beispiel der Hash %ENV) an eine Klasse. Diese Klasse definiert eine Methode FETCH für den Zugriff auf die Daten über den Schlüssel. Und in dieser Methode FETCH wird dafür gesorgt daß der Zugriff auf einen nicht existierenden Schlüssel das Programm nicht zum Absturz bringt. Das ist die Idee hinter meiner Klasse TieENV die ich hier vorgestellt habe.

Man könnte das auch derart weiter entwickeln, daß die Daten erst in FETCH aus %ENV gezogen werden. Das kopieren im Konstruktor TIEHASH entfällt somit. Das geht nur in diesem Fall schief weil ab tie %ENV keine Daten mehr in %ENV vorhanden sind.

Von daher muß man %ENV kopieren. So oder so
Code (perl): (dl )
1
2
my $self = {  map{ $_ => $ENV{$_} } keys %ENV };
my $self = do{ my %h = %ENV; \%h };


als meine Beispiel zum Thema, hashref, block, map und do

.
Last edited: 2024-08-08 16:59:36 +0200 (CEST)

View full thread Block vs. Hashref