Thread Assoziative Arrays...: Problem mit dem automatischen Erstellen
(8 answers)
Opened by nikster77 at 2006-05-02 20:14
Hmm... ja, das ist auch ganz gut, vor allem wie schnell das bei dir ging :>
(Ich bin schlecht..., Ich bin schlecht..., einfach schlecht in Perl.) Aber leider gibt mir print @info; folgendes aus: # autogenerated /etc/raidtab by YaST2raiddev /dev/md0raiddev /dev/md1raiddev /dev/md2raiddev /dev/md3raiddev /dev/md4 es sind zwar, wie es scheint, die schluessel richtig, nicht aber die werte dahinter, leider verstehe ich noch nicht ganz was das Programm tut, doch es ist (fuer den Wissenden) sicherlich leicht abzuaendern. Danke auf jeden Fall schonmal fuer die Hilfe, das bringt mich bestimmt ein grosses Stueck weiter wenn ich etwas darueber "meditiert" habe :) Waehrend ich auf deine (sehr schnelle) Antwort gewartet habe, habe ich einen neuen Ansatz versucht und es waere nett wenn du den vielleicht auch nocheinmal anschauen koenntest. Code: (dl
)
1 #!/usr/bin/perl Wie du siehst, habe ich hier das File bereits am Anfang in zwei Arrays gesplittet die auch beide genau das liefern was ich brauche: @md_s liefert die /dev/md's @disks liefert die platten /dev/(h|s)d[a-z] Mein Gedanke war es jetzt beide Arrays mittels einer Schleife zu Verknuepfen und erstmal jeweils zwei Elemente aus @disks in ein eigenes Array zu kopieren. Diese Arrays haette ich dann in @md_s referenziert. Ungefaehr so: @xy=($md_s[0], \@related_disks[1], usw.) So haette ich in /proc/mdstat immer nach mdX greppen koennen und wenn etwas nicht gestimmt haette sagen koennen: if $md_s[0] nicht OK foreach $xy (@related_disks[1]) rebuild array (Z.B) done; Leider kommt perl anscheinend mit dem true nicht zurecht, ich habe auch noch kein Beispiel mit "true" gesehen... Ausserdem passt es ihm nicht, das ich das Array in der Schleife "referenziere" (@related_disks[$o],...). Weisst du vielleicht warum das so ist? Oder ob es bei Perl tatsaechlich kein true gibt? Aber bis dahin habe ich die Funktionsweise deines Programms bestimmt auch schon besser verstanden. Vielen Dank Niels |