Thread Hash kopieren (9 answers)
Opened by Jiep1963 at 2015-12-14 12:56

Jiep1963
 2015-12-15 17:02
#183244 #183244
User since
2008-08-20
37 Artikel
BenutzerIn

user image
> 2) Du hast viel zu viele globale Variablen!
> Schau, dass du die globalen Variablen wegbekommst.
@Raubtier, @Muffi,
Diese "globalen" Variablen werden in anderen Funktionen immer wieder benutzt, weil es immer die selben Inhalte sind auf die vergleichend mit unterschiedlichen Aufgaben zugegriffen wird. Es bringt also nichts ständig kopien von "diese" zu machen oder Referenzen zu ziehen. "Wenn" ich in irgendwelchen Funktionen durch Reduzierungen (Ausschluss oder was auch immer) anstellen muss, "dann" sind diese Kopien für die Funktion lokal (so ungefähr). Und ich kann Euch definitiv versichern, dass es daran nicht liegt.

> Und 1500 Zeilen ... ob man ein wenig mehr Struktur reinkriegt.
@Muffi,
Ja, Struktur ist drin! Die ganze Perl-Script-Datei ist, wenn man es so sieht, ein in sich geschlossenes Objekt mit "einer Aufgabe".
Streng genommen verteilt es sich auf 3 Perl-Scripte und 3 Shell-Scripte. Allerdings ist dann auch die Variablen-Verwaltung abgegrenzt, z.B. durch Referenz-Kopien...

Liebe Helfer, bitte laßt uns jetzt aber darüber keinen Glaubenskrieg führen.
Ich habe fast 3.000.000 andere Zeichen für Scripte eingehackt (Shell, Perl, HTML, sed, awk, C,) und der funktioniert auf diesem System ebenso.

> Ich würde Zwischenergebnisse printen
@bianca,
Habe ich bereits vor und auch nach meiner Anfrage hier gemacht. Und manchmal komme ich dann einen Tag später selbst auf die Lösung. Ist aber hier nicht der Fall. TATSACHE ist (immer wieder), dass aller anderer Code (bezogen auf die Aufgabe) genau das macht was ich will. Was definitif einfach nicht geht ist, dass ich das persitente Hash nicht überschreiben kann.

Es gibt also nicht viele Möglichkeiten:

* Ich mache beim Öffnen der Hash-Datei irgend etwas falsch.
* Ich mache beim Kopieren irgend etwas falsch.
* "dbmopen" ist schon so veraltet, dass niemand (außer mir), den Fehler bemerkt hat,
weil Gott und die (Perl-)Welt bereits nur noch mit "tie" arbeitet. (*)
* Mein Perl (5, Vers. 12, SubVers. 12 (5.12.3) spinnt.

Wenn niemand den Fehler aus diesem Pool der Möglichkeiten kennt, werde ich einfach die Hash-Datei als Text-Datei Zeile für Zeile mit einem FS speichern und diese dann beim Einlesen wieder in ein Hash überführen. Wäre als Hash-Datei einfach nur bequemer gewesen. ODER jemand kann mir hier eine 'tie'-Alternative (für Dummis) aufzeigen (die ich dann anhand des praktischen Beispiels studieren kann), weil ich die Beispiele (nebst verstreuten Text) aus den Perl-Büchern nicht verstehe.

(*) Perl benutze ich für nur Text-Vergleiche (oder ähnliches). Ich muss nicht mehr oft damit arbeiten - die Programmierarbeit geht aufs Ende zu. Statt dessen arbeite ich jetzt auf Linux viel mit der 'bash'. Es lohnt sich also eigentlich nicht wirklich Perl fachlich im Selbstudium noch weiter zu vertiefen (bezogen auf 'tie'); dann könnte ich auch gleich eine neue Sprache (wie z.B. python, PHP) ausprobieren, von denen "ich" im Vorfeld nicht weiß, ob die das dann auch so erbringen was ich unter Perl gewohnt bin... Ihr seht, diese fachliche Frage ist jetzt wie ein Ei - entweder est kippt links oder rechts um... ;-)

Darf ich noch auf Hilfe hoffen, oder soll ich einfach auf die Text-Datei umprogrammieren?

Auf alle Fälle: Vielen vielen Dank für die bisherigen Anregungen !!!

Gruß Achim

View full thread Hash kopieren