Schrift
[thread]10412[/thread]

Problem mit Hashes



<< |< 1 2 >| >> 18 Einträge, 2 Seiten
fabmo
 2007-09-18 15:47
#99601 #99601
User since
2007-09-18
26 Artikel
BenutzerIn
[default_avatar]
Hallo erstmal an alle :)

Ich kommen auch gleich mit einem kleinen Problem:
Also ich würde gern ein Hash in abhängigkeit von einer bereits definierten Liste erstellen.
Versucht habe ich das ganze so:

%daten1 =
(
for ($i=0; $i<4; $i++)
{
"loader[$i]" => "[$i]", #loader ist der Name der Liste

}

);
wobei loader die Liste mit den jeweiligen Einträgen ist.
Grund für dieses ist: ich muss bei der Liste loader die Nummer der jeweiligen Elemente haben.
Wenn in der Liste loader beispielsweise das Element "init" an dritter stelle steht, muss ich irgendwie rausfinden an welcher stelle das Element "init" steht.
Da ich keinen Befehl gefunden habe der das kann habe ich es jetzt so versucht. Leider ohne Erfolg....:(

Hat vielleicht jemand ne Idee wie ich das Problem so oder so lösen kann?
sid burn
 2007-09-18 15:56
#99603 #99603
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Du suchst wahrscheinlich soetwas:
Code (perl): (dl )
1
2
3
4
my %daten;
for my $index ( 0 .. $#loader ) {
    $daten{$index} = $loader[$index];
}


oder kürzer:

Code (perl): (dl )
my %daten = map { $_ => $loader[$_] } 0 .. $#loader;

Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
fabmo
 2007-09-18 16:15
#99606 #99606
User since
2007-09-18
26 Artikel
BenutzerIn
[default_avatar]
Hallo,

vielen Dank schonmal es funktionier fast....

Ich möchte ja einen Hash erzeugen, der den Elementen aus der Liste eine Zahl zuordnet..
Kann ich dann einfach das was du geschrieben hast umdrehen?
Sprich so:???

my %daten = map {$loader[$_] => $_ } 0 .. $#loader;

So ganz läuft es noch nicht.... Vielleicht kannst du mir da ja ja nochma kurz helfen?
renee
 2007-09-18 16:21
#99607 #99607
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Was funktioniert daran nicht??
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
fabmo
 2007-09-18 16:35
#99612 #99612
User since
2007-09-18
26 Artikel
BenutzerIn
[default_avatar]
Hallo,

oh funktioniert doch.... Ich hatte nur nen Tippfehler in meinem Programm.
Aber dennoch wüsste ich gern mal warum meine Variante mit der for schleife nicht geklappt hat?
Eigentlich macht das hier ja nicht viel anderes oder?
renee
 2007-09-18 16:39
#99613 #99613
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du hast versucht, eine Schleife bei einer Variablendeklaration auszuführen...

das map ist eher so etwas:
Code (perl): (dl )
my %hash = do{ my @array; push @array, $loader[$_] => $_ for(0..$#loader); @array }
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
fabmo
 2007-09-18 16:54
#99614 #99614
User since
2007-09-18
26 Artikel
BenutzerIn
[default_avatar]
Okay also keine Schleifen bei Variablendeklarationen.
Dafür nehm ich dann Map.

Noch eine vielleicht unerwartete frage:
wofür steht eigentlich das "my"?
Ich les das andauernd aber ich hab keine Ahnung was das sein soll.
Sorry aber is heute mein erster Tag an dem ich mit Perl arbeite.
renee
 2007-09-18 16:58
#99615 #99615
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dann solltest Du Dir mal diesen Wiki:Artikel durchlesen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
fabmo
 2007-09-18 17:20
#99618 #99618
User since
2007-09-18
26 Artikel
BenutzerIn
[default_avatar]
Okay mach ich:)
#Kein Kommentar
 2007-09-18 18:02
#99621 #99621
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
renee+2007-09-18 14:39:51--
Code (perl): (dl )
my %hash = do{ my @array; push @array, $loader[$_] => $_ for(0..$#loader); @array }


ein bug, er erkennt die raute in dem index, als Kommentarzeichen an.
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
<< |< 1 2 >| >> 18 Einträge, 2 Seiten



View all threads created 2007-09-18 15:47.