Thread Block vs. Hashref
(25 answers)
Opened by barney at 2024-08-02 13:17
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) |