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