Gandalf: Assoziatives Array in einen String umwandel

Hilfe Hilfe
my %alter = ("Waschmaschine","5","Sterioanlage","4","Stuhl","2","Tisch","3");
my  %alt = %alter;
Wie wandelt man in perl ein assoziatives Array in ein String um
my @keys =sort {$alt{$a} cmp $alt{$b}} keys %alt;
foreach (@keys) {print "$_ je $alt{$_} Haeuser\n "};
Wie kann ich print ersetzen durch ein Array und dann abfragen
oder besser wie kann ich es gleich in einen String umwadeln.
Aber so das die Zuordnung noch das ist.
Waschmaschine je 5 Haeuser, Sterioanlage je 4 Haeuser, ......
cu Sputnik

  1. Halihallo Gandalf

    Hilfe Hilfe

    ersetze dies durch eine gültige Anrede. Danke.

    my %alter = ("Waschmaschine","5","Sterioanlage","4","Stuhl","2","Tisch","3");
    my  %alt = %alter;

    Warum kopierst du den Hash?

    my @keys =sort {$alt{$a} cmp $alt{$b}} keys %alt;
    foreach (@keys) {print "$_ je $alt{$_} Haeuser\n "};
    Wie kann ich print ersetzen durch ein Array und dann abfragen

    Wieso print ersetzen? - Durch was willst du es ersetzt haben?
    Du möchtest aus dem Hash (assoziatives Array) ein String erstellen?

    my $str = '';
    my @keys = sort {$alt{$a} cmp $alt{$b}} keys %alt;
    foreach (@keys) {$str .= "$_ je $alt{$_} Haeuser,"};
    chop $str;   # letztes Zeichen (hier ein Komma) weg.

    Viele Grüsse

    Philipp

  2. Hallo,
    ich möchte zu Philips Antwort noch etwas hinzufügen.
    Wozu willst du eigentlich den Hash in ein Array umwandeln?
    Du könntest den Hash auch so ausgeben :

    #!/usr/bin/perl -w

    use strict;

    my %alter = ('Waschmaschine','5','Sterioanlage','4','Stuhl','2,'Tisch','3');
    while(my($key, $value) = each %alter)    {
    print $key . ' je ' => $value . " Haeuser\n";
    }

    $xNeTworKx.

    --
    Mit Computern lösen wir Probleme, die wir ohne sie gar nicht hätten.