Hash von Subroutine zurueckuebergeben

Johannes Fuernkranz juffi at ai.univie.ac.at
Tue Jan 25 05:58:01 CST 2000


* * * vienna-pm-list * * *


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?

							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);
> 
> # read button database ...
>     my %strings_db_button = ();
>     $help = $directory_db . $strings_db_button_file;
>     &read_database ($help, \%strings_db_button);
> 
> 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
> 
> Ich waere fuer Euere Hinweise sehr dankbar.
> 
> 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/
###
You are subscribed to vienna-pm-list
http://www.fff.at/fff/vienna.pm/



More information about the Vienna-pm mailing list