Torwächter: Sortieren nach Bachstaben schlägt fehl - warum ?

Hallo zusammen,

ich ordne Hashes zu mit while.

dann dies:

for (sort {$upautorB{$a} cmp $upautorB{$b}} keys %upautorB)
        {
          if($alleautorentext !~ /$upautorB{$_}/)
          {
                $alleautorentext = qq~
                $alleautorentext
                <option value="$upautorB{$_}">$upautorB{$_}\n
                ~;
          }
        }

aber egal ob ich <=> oder cmp benutze, es sortiert überhaupt nicht.
Ich hoffe ihr seht hier irgend einen Fehler.

Danke für eure Mühe.

Greetings
Torwächter

  1. Hallo zusammen,

    hi

    ich ordne Hashes zu mit while.

    wie sieht denn der Hash aus, bzw. was ist Schlüssel, was ist inhalt?

    oesi50

    1. Hallo,

      wie sieht denn der Hash aus, bzw. was ist Schlüssel, was ist inhalt?

      so:

      der Key besteht aus "A$nummer$namedesautors";
      (A.., da keine Zahl als erstes stehen darf)

      $upautorB{$key} = $upautor;

      oesi50

      1. Hallo,

        der Key besteht aus "A$nummer$namedesautors";
        (A.., da keine Zahl als erstes stehen darf)

        $upautorB{$key} = $upautor;

        Deine Antwort erscheint mir rätselhaft, aber probier mal das hier:
        -----------------------------------------------------
        #!/usr/bin/perl

        use strict;

        print "Hello, Torwächter...\n";

        my %upautorB;

        $upautorB{'Fritz'}="Alles";
        $upautorB{'Frieda'}="oder";
        $upautorB{'Torwächter'}="nichts";
        $upautorB{'Arno'}="ist";
        $upautorB{'Fred'}="hier";
        $upautorB{'Bernd'}="die";
        $upautorB{'Susi'}="Frage";

        my $alleautorentext ="";

        for (sort keys %upautorB){
           $alleautorentext .= qq~<option value="$_">$_</option>\n~;
        }
        print $alleautorentext;

        oesi50

        1. Danke dir, habe meinen Fehler nun gefunden (war "leider" nicht im Script: der Browser hat die Seite scheinbar aus der Cache geholt bzw. hat mein Script die Datenbank nicht erneut geöffnet.

          Jetzt gehts aber.

          Danke nochmal.

          Greetings
          Torwächter