Thread Innerhalb Hash Def auf Keys zugreifen (42 answers)
Opened by bianca at 2013-09-08 06:08

payx
 2013-09-10 09:46
#170063 #170063
User since
2006-05-04
564 Artikel
BenutzerIn

user image
Hallo bianca,

2013-09-09T14:56:38 bianca
2013-09-09T11:04:30 payx
mir scheint das immer noch zu komplex (und irgendwie fehleranfällig) gelöst zu sein.

Was siehst du fehleranfällig an?

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
2013-09-09T11:04:30 payx
und die Verknüpfung zwischen beiden muss in der Art eines Mappings gepflegt werden.

Nein, wofür?

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
Da zwischen Formaten und Variablen eine n:n-Beziehung besteht, müssen beide Bereiche auf jeden Fall separat existieren ...

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
2013-09-09T11:04:30 payx
Dabei ist es technisch gesehen egal, ob ich den Formaten eine Liste mit Variablen (mein erster Ansatz) oder den Variablen eine Liste mit Formaten (mein zweiter Ansatz) beifüge.

Nein. Ich brauche ja nur von den Variablen ausgehend deren "Aussage" für welche Formate sie zur Verfügung stehen.
Die Formate hingegen iterieren immer über alle Variablen und klappern diese ab.

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
Aber meinen Lösung mit der Übergabe von ident ist optimal geeignet und der Code ist super einfach zu pflegen.

Prima!

Grüße
payx

View full thread Innerhalb Hash Def auf Keys zugreifen