Frecker: %hash im %hash

Hallo,
so etwas müsste doch funktionieren

  
my %fehler_d = ('1' => 'Bitte Namen angeben',  
                '2' => 'Name ist zu kurz',  
                '3' => 'Name enthält unzulässige Zeichen'  
                  );  
my %fehler_e = ('1' => 'Please insert name',  
                '2' => 'blabla',  
                '3' => 'blablabla'  
                  );  
  
my %fehler_tab = ('d' => \%fehler_d,  
                  'f' => \%fehler_e);  

Aber wie bekomme ich z.B. den Text '2' in dem Hash %fehler_e?
Ich habe schon einige Varianten von

  
my $testa = $$fehler_tab{'e'}{'2'};  

versucht.

  1. so etwas müsste doch funktionieren

    my %fehler_d = ('1' => 'Bitte Namen angeben',
                    '2' => 'Name ist zu kurz',
                    '3' => 'Name enthält unzulässige Zeichen'
                      );
    my %fehler_e = ('1' => 'Please insert name',
                    '2' => 'blabla',
                    '3' => 'blablabla'
                      );

    my %fehler_tab = ('d' => %fehler_d,
                      'f' => %fehler_e);

      
    Ja, wobei das sehr umständlich aussieht.  
      
    
    >   
    > Aber wie bekomme ich z.B. den Text '2' in dem Hash %fehler\_e?  
    > Ich habe schon einige Varianten von  
    >   
    > ~~~perl
      
    
    > my $testa = $$fehler_tab{'e'}{'2'};  
    > 
    
    

    versucht.

    Vor dem Probieren sollte ein Blick in die Doku geworfen werden.

    http://perldoc.perl.org/perlop.html
    http://perldoc.perl.org/perlref.html
    http://perldoc.perl.org/perlreftut.html

    Struppi.

    1. Vor dem Probieren sollte ein Blick in die Doku geworfen werden.

      http://perldoc.perl.org/perlop.html
      http://perldoc.perl.org/perlref.html
      http://perldoc.perl.org/perlreftut.html

      Danke für die tolle Auskunft. Ich habe gedacht, für meine einfachen Probleme reicht Selfhtml und notfalls das Forum.
      Aber ich bin überfordert, wenn ich drei solche englischen Dokumentationen lesen soll.

      1. Danke für die tolle Auskunft. Ich habe gedacht, für meine einfachen Probleme reicht Selfhtml und notfalls das Forum.

        Woher weißt du das das ein einfaches Problem ist?

        Ich finde es selbstverständlich das man in der Lage ist eine Dokumentation zu benutzen und da es am Anfang etwas schwer ist in der sehr umfangreichen Perl Doku das richtige zu finden habe ich mir die Mühe gemacht dir die Seiten rauszusuchen.

        Aber ich bin überfordert, wenn ich drei solche englischen Dokumentationen lesen soll.

        Dann bist du auch überfordert überhaupt eine Programmiersprache zu lernen, lass es einfach bleiben.

        Struppi.

        1. Dann bist du auch überfordert überhaupt eine Programmiersprache zu lernen, lass es einfach bleiben.

          Dumme Sprüche! Bevor ich anfange, soll ich erst monatelang Literatur studieren. Ich lerne lieber by doing und copying!

          batooh hat in vorbildlicher Weise gezeigt, wie man andern weiterhilft!
          Solche Oberlehrermanieren wie Deine helfen keinem!

          1. Dann bist du auch überfordert überhaupt eine Programmiersprache zu lernen, lass es einfach bleiben.
            Dumme Sprüche! Bevor ich anfange, soll ich erst monatelang Literatur studieren. Ich lerne lieber by doing und copying!

            Ich halte deine Sprüche für wesentlich dümmer, denn erstes habe ich gerade nicht von dir erwartet dass du monetalang "Literatur studierst" sondern dir direkt einen Link auf eine Seite gezeigt die dir sofort geholfen hätte und falls du nicht komplett bescheuert bist auch für zukünftigher Probleme, zumal in der Perl Doku durchaus auch Beispiele sind.

            batooh hat in vorbildlicher Weise gezeigt, wie man andern weiterhilft!

            Das sehe ich nicht so. Du weißt immer noch nicht wie du Probleme selber lösen kannst.

            Solche Oberlehrermanieren wie Deine helfen keinem!

            Wir werden sehen wann das nächste Problem auftritt, weil du dir die nicht Chance gibst den eigenen Weg zu finden um deine Probleme zu lösen sondern lieber brav an einem Händchen geführt werden willst.

            Struppi.

            1. Ich halte deine Sprüche für wesentlich dümmer, denn erstes habe ich gerade nicht von dir erwartet dass du monetalang "Literatur studierst" sondern dir direkt einen Link auf eine Seite gezeigt die dir sofort geholfen hätte und falls du nicht komplett bescheuert bist auch für zukünftigher Probleme, zumal in der Perl Doku durchaus auch Beispiele sind.

              Bescheuert bist wohl Du!
              Was ich mindestens hätte machen müssen, wäre wochenlang Englisch zu büffeln.
              Verweise auf englische Literatur habe ich im Internet selbst genug gefunden!
              Vielleicht werde ich auch selfhtml-er, Verweise kann ich auch vorschlagen, wahrscheinlich hast Du da schon einen Automatismus.
              (if perl and ...) goto english-Literatur

              1. Bescheuert bist wohl Du!

                Nana, wir wollen doch sachlich bleiben :)

                Was ich mindestens hätte machen müssen, wäre wochenlang Englisch zu büffeln.

                Leider ist englisch Grundvoraussetzung, um eine Programmiersprache wie Perl aus kostenlosen Quellen zu lernen. Wenn dir das nicht zusagt, dann kaufe dir (so du ernst- und dauerhaft Perl verwenden willst) entsprechende Bücher, "Einführung in Perl" von Randal Schwartz oder "Programmieren mit Perl" von Wall/Christiansen/Schwartz (bekannt als das "Camel-Book") kann ich empfehlen. Und wenn es dir um punktuelle Unterstützung geht. Wenn dir die Grundlagen bereits geläufig sind, empfehle ich das "Perl-Kochbuch" von Christiansen und Torkington. Daneben gibt es diverse Spezialbücher, so z.B. "CGI-Anwendungen mit Perl" von Guelich oder "Programmieren mit Perl-Modulen" von Patwardhan und Irving. Alles in Deutsch.

                Vielleicht werde ich auch selfhtml-er, Verweise kann ich auch vorschlagen, wahrscheinlich hast Du da schon einen Automatismus.

                Ich gebe dir insoweit Recht, als das kommentierte Ankerverweise zum Einstieg sicher besser gewesen wären:
                perldsc: Hashes of Hashes (Erzeugen, Zugriff und Codebeispiele), perlreftut: Making References und perlreftut: Using References für's Grundverständnis.

                Btw, du darfst gerne recherchieren, seit wann ich hier im Themenbereich PERL ernstzunehmende Antworten gebe. Mit der Sprache selber beschäftige ich mich autodidaktisch seit 2000.

                Siechfred

                --
                Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
                1. Nana, wir wollen doch sachlich bleiben :)

                  Das hättest Du besser an Struppi geschrieben, ich habe nur seine Worte verwendet.

                  Btw, du darfst gerne recherchieren, seit wann ich hier im Themenbereich PERL ernstzunehmende Antworten gebe. Mit der Sprache selber beschäftige ich mich autodidaktisch seit 2000.

                  Du warst auch nicht gemeint!
                  Danke für die Hinweise auf die deutschen Quellen.

                  1. Du warst auch nicht gemeint!

                    Nene, so war's nicht gemeint, ich wollte dir als Perl-Anfänger(?) nur eine ungefähre Zeitschiene geben, da Perl sich m.E. nicht innerhalb von ein paar Monaten erlernen lässt :) Bei mir hat's bis zum Status "Fortgeschrittener" halt gute 5 Jahre gedauert.

                    Siechfred

                    --
                    Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
              2. Bescheuert bist wohl Du!

                Danke, sieht für mich zwar anders aus, da es dir anscheinend schwer fällt lernen zu wollen.

                Verweise auf englische Literatur habe ich im Internet selbst genug gefunden!

                Das war aber aus deiner Frage nicht ersichtlich.

                Vielleicht werde ich auch selfhtml-er, Verweise kann ich auch vorschlagen, wahrscheinlich hast Du da schon einen Automatismus.

                Das glaub ich nicht, sonst wäre was davon zu merken gewesen.

                (if perl and ...) goto english-Literatur

                Keine Ahnung was für ein Problem du hast, aber selbstverständlich ist Programmierliteratur überwiegend in Englisch vorhanden. Du hast nicht gesagt, dass du dich mit Englisch schwer tust und deshalb Schwierigkeiten mit der Dokumentation hast, dann wäre es kein Problem gewesen dir die entsprechende Stelle zu erklären.

                Ich habe dir lediglich versucht zu helfen dich in der umfangreichen Doku zu recht zu finden. Ich hab aber eher den Eindruck das du es als Zumutung betrachtest überhaupt einen Blick da rein zu werfen, dann wirkt deine Aussage dass du auch Verweise vorschlagen kannst lächerlich.

                Struppi.

  2. Hallo.

    'f' => \%fehler_e

    Dass %fehler_e dem Schlüssel 'f' zugewiesen wird, ist beabsichtigt?

    Aber wie bekomme ich z.B. den Text '2' in dem Hash %fehler_e?

    Das hier reicht völlig:

    my $testa = $fehler_tab{'e'}{'2'};

    Alternativ würde auch folgendes funktionieren:

    my $testa = $fehler_tab{'e'}->{'2'};

    Oder das hier:

    my $testa = ${ $fehler_tab{'e'} }{'2'};

    Anstatt die Hashs %fehler_d und %fehler_e einzeln zu deklarieren, kannst du sie im Übrigen auch direkt als anonyme Hashs mittels geschweifter Klammern zusammen bauen, z. B.:

    my %fehler_tab = ( 'd' => { '1' => 'Bitte Namen angeben',  
                                '2' => 'Name ist zu kurz',  
                                '3' => 'Name enthält unzulässige Zeichen'  
                              },  
                       'e' => { '1' => 'Please insert name',  
                                '2' => 'blabla',  
                                '3' => 'blablabla'  
                              },  
                     );
    

    Schöne Grüße.

    1. Hallo,
      vielen Dank!