02_RSS.pm push/pop (aus altem Thread gekramt)

Begonnen von betateilchen, 11 Februar 2015, 19:01:55

Vorheriges Thema - Nächstes Thema

betateilchen

Zitat von: Dr. Boris Neubert am 24 April 2014, 18:31:52
Der Code tut wohl was er soll, aber er pusht und poppt nur einmal. Von push und pop erwarte ich aber das Verhalten, Parameter auf einen Stapel zu legen. Dazu müßte ich wissen, wie man Hashes in Arrays pusht. Mit Referenzen stehe ich auf dem Kriegsfuß - oder in anderen Worten: ich bin zu faul, mir das erforderliche Wissen anzulesen.

Dann will ich Dich mal ein bisschen in Deiner Faulheit unterstützen 8)
Hier, quasi als Abfallprodukt aus 55_InfoPanel, eine Lösung, die den push des Parametersatzes beliebig oft ermöglicht.



...

+  my %pstack;
+ my $pstackcount = 0;
  my %params;

...

        when("push") {
          $pstackcount++;
          while ( my ($key, $value) = each(%params) ) {
            $pstack{$pstackcount}{$key} = $value;
          }
        }

        when("pop") {
          return unless $pstackcount;
          while ( my ($key, $value) = each($pstack{$pstackcount}) ) {
            $params{$key} = $value;
          }
          delete $pstack{$pstackcount};
          $pstackcount--;
        }


-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!