Hash von Subroutine zurueckuebergeben
Peter Seitz jun.
p.seitz at koehler-seitz.de
Tue Jan 25 08:42:05 CST 2000
* * * vienna-pm-list * * *
On Tue, 25 Jan 2000 12:58:01 +0100
Johannes Fuernkranz <juffi at ai.univie.ac.at> wrote:
> Ich weisz nicht, ob ich Dir wirklich helfen kann. Ganz blick ich
> mich nicht durch. Aber auf den ersten Blick faellt mir auf, dasz Du
> zwar einen Hash %strings_db uebergibst, aber dann in der Subroutine
> die lokalen Parameter %db_hash und $db_hash (wofuer gehoert
> letzterer ueberhaupt?) nicht verwendest. Hab ich da was uebersehen?
Hmmm, das ist wohl noch vom letzten Ansatz uebrig. Ich wollte da dann
den hash mittels (%db_hash) uebergeben, doch bei Hashes habe ich dann
gelesen, dass das anders funktioniert.
Das $db_hash sollte den Hash uebernehmen.
Aber ich fuerchte, ich muss am Ende der subroutine noch ein
return \%strings_db;
schreiben. Oder muss ich vielmehr ein
return ($dbfilename, \%strings_db);
schreiben?
>
> Juffi
>
> Peter Seitz wrote:
> >
> > * * * vienna-pm-list * * *
> >
> > Hallo Freunde,
> >
> > ich habe versucht meinen code etwas zu straffen, indem ich eine
> > Subroutine geschrieben hae um meine "Datenbankdateien" einzulesen.
> >
> > Nur hab ich jetzt Schwierigkeiten und seltsame Verhaltensweisen und
> > bin mir nicht sicher, ob ich das richtig implementiert habe.
> > (Mein Code muss sowiso modularisiert werden und neu strukturiert,
> > doch ich muss das Projekt momentan leider mit diesem Hack
> > weiterbringen. Ich versuch ja immerhin schon mich mit dem strict
> > mode anzufreunden <grin>)
> >
> > Hier der zweimalige Aufruf meiner Subroutine und unten die Definition.
> > Ich bin mir nicht sicher, ob ich nun tatsaechlich im Hauptprogramm
> > die Daten in den hashes %strings_db und %strings_db_button
> > abgespeichert habe, oder ob diese nur referenziert werden.
> >
> > # read strings database ...
> > my %strings_db = ();
> > $help = $directory_db . $strings_db_file;
> > &read_database ($help, \%strings_db);
[...]
> > sub read_database {
> > # read a database file and store it on a hash
> > # variable parameters:
> > # $dbfilename : Name of database file (including path)
> > # %db_hash : Hash for storing database content
> > # developed with strict mode
> > my ($dbfilename, $db_hash) = @_;
> > my %db_hash = ();
> > open (STRINGS_DB, "$dbfilename") ||
> > die "cannot open file $dbfilename: $!\n";
> > my @strings = <STRINGS_DB>;
> > chomp (@strings);
> > close (STRINGS_DB);
> >
> > foreach (@strings) {
> > my @temp = ();
> > @temp = split(/\x7f/, $_);
> > # store strings.db file in a hash referenced by string.
> > $strings_db{$temp[1]} = $temp[0];
> > } # foreach
> > } ## sub read_database
[...]
Gruss
Peter Seitz
Projektleiter Projekt Woerterbuch
--
Interesse an einem freien deutschen Woerterbuch? Helfer gesucht!
Projekt Woerterbuch: <URL:http://Free-Dict.bzs.tu-graz.ac.at/>
###
You are subscribed to vienna-pm-list
http://www.fff.at/fff/vienna.pm/
More information about the Vienna-pm
mailing list