FHEM Forum

FHEM => Frontends => RSS => Thema gestartet von: betateilchen am 11 Februar 2015, 19:01:55

Titel: 02_RSS.pm push/pop (aus altem Thread gekramt)
Beitrag von: betateilchen am 11 Februar 2015, 19:01:55
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--;
        }