Thread Innerhalb Hash Def auf Keys zugreifen
(42 answers)
Opened by bianca at 2013-09-08 06:08
Hallo bianca,
2013-09-09T14:56:38 bianca Fehleranfällig sind meist unübersichtliche Lösungen, einfach weil man mögliche Fehler mangels Übersicht nicht sieht. Ich gebe zu, dass das eine Plattitüde ist. Falsch kommt es mir vor, in einem print-Befehl eine sub aufzurufen, die ihrerseits auch print-Befehle ausführt, auch wenn es irgendwie funktioniert. Man muss schon sehr lange sinnieren, um beim Output zu kapieren, welcher der beiden derart verschachtelten print-Befehle nun wann was ausgibt. Nach meinem Verständnis wäre es richtiger (sauberer, übersichtlicher, klarer, stringenter, weniger fehleranfällig usw.), in einem print-Befehl nur solche subs aufzurufen, die druckbare Zeichen zurückliefern, nicht aber solche, die selbst etwas printen. 2013-09-09T14:56:38 bianca Doch, ich habe das an dieser Stelle zu abstrahieren versucht. Den dafür relevanten Teil meines Satzes hast Du aus meinem Zitat herausgelöscht: 2013-09-09T11:04:30 payx Stelle es Dir als (relationales, normalisiertes) DB-Schema vor: Du hättest dann eine Tabelle mit den Variablen, eine zweite mit den Formaten und eine dritte mit dem Mapping darin, wo im einfachsten Fall eine Spalte Variablen-ID und eine Spalte Format-ID vorhanden wären. In Perl gibt es verschachtelte Datenstrukturen, deshalb kannst Du die Mapping-Tabelle auch in eine der beiden anderen Strukturen einbetten (was bei einer DB nicht brauchbar geht). Rein informationell ist das aber dasselbe. 2013-09-09T14:56:38 bianca Deine Lösung ist von der Datenstruktur her gleichartig wie meine zweite Lösung: Die Variablen haben (bei gueltig) eine Liste mit den Formaten, bzw. mit Verweisen auf die Formate (Deine ident-Werte). Dass Du hier einen String verwendest anstelle einer verschachtelten Struktur (ArrayRef oder wie in meinem Beispiel HashRef für die Format-Verweise), den Du dann erst bei der Verarbeitung in eine Liste umwandelst, ist eine Möglichkeit, die vielleicht wirklich die Pflege bequemer macht. TIMTOWTDI, einmal mehr. Zu den anderen Punkten lässt sich wohl nichts weiter sagen, da Du sagst, sie seien im tatsächlichen Anwendungsfall ganz andersartig. Dann war aber das Beispiel nicht so besonders gut dafür geeignet hier die Fragestellung zu illustrieren, denke ich. 2013-09-09T14:56:38 bianca Prima! Grüße payx |