Diettrich: Alle bekannten Variablen anlisten

Guten Abend,
Wie kann man an beliebiger Stelle im Programm alle dort gültigen Variablen mit Inhalt anlisten bzw. in die LOG-Datei ausgeben ?

  1. Hell-O!

    Wie kann man an beliebiger Stelle im Programm alle dort gültigen Variablen mit Inhalt anlisten bzw. in die LOG-Datei ausgeben ?

    Perl speichert Variablen in einer Symboltabelle für den jeweiligen Namensraum. Zugriff auf alle Einträge dieser Symboltabelle erhältst du über den Hash '%package_name::'. Willst du also alle in der Symboltabelle definierten Variablen wissen, lasse dir alle Schlüssel des o.g. Hashs ausgeben, also z.B. so:

    foreach $wert (keys %main::) {  
      print scalar($v);  
    }
    

    Etwas komfortabler scheint es mit dem CPAN-Modul Devel::Symdump zu funktionieren.

    Siechfred

    --
    Hier könnte Ihre Werbung stehen.
    Dark Millennium || Die neue 1%-Regelung
    1. Hell-O Ingrid!

      foreach $wert (keys %main::) {

      print scalar($v);
      }

        
      Korrektur: $v muss natürlich $wert heißen.  
        
      Wenn du zu den Variablen auch den Wert möchtest, bediene dich [Symbolischer Referenzen](http://perldoc.perl.org/perlref.html#Symbolic-references-reference%2c-symbolic-reference%2c-soft-symbolic-reference-soft-reference).  
        
      Ausführliches Beispiel:  
        
      ~~~perl
      package Test;  
        
      $test_var1 = 'foo';  
      $test_var2 = 'bar';  
        
      package main;  
        
      foreach $wert (keys %Test::) {  
        print scalar($wert) . ' = ' . ${"Test::$wert"} . "\n";  
      }
      

      So, jetzt gehe ich Kaffee trinken :-)

      Siechfred

      --
      Hier könnte Ihre Werbung stehen.
      Dark Millennium || Die neue 1%-Regelung
      1. Hell-O Ingrid!

        ich bin zwar nicht die Ingrid, habe auch keine Ambitionen es (sie) zu werden,
        aber angesichts der starken Hilfe sei Dir verziehen !
        Danke

        1. Hell-O Ingrid!
          ich bin zwar nicht die Ingrid, habe auch keine Ambitionen es (sie) zu werden,
          aber angesichts der starken Hilfe sei Dir verziehen !

          Er meinte auch gar nicht dich
          http://de.wikipedia.org/wiki/Netzjargon#Besondere_Ausdr.C3.BCcke

          Struppi.

          --
          Javascript ist toll (Perl auch!)
          1. Er meinte auch gar nicht dich
            http://de.wikipedia.org/wiki/Netzjargon#Besondere_Ausdr.C3.BCcke

            Struppi.

            Au weh, das musste ich aber nicht wissen, oder ?