linux-l: zwei Fragen zu Perl-DBM
JSC
JSC at jsc.tfh-berlin.de
Sa Okt 20 18:15:20 CEST 2001
* Olaf Radicke <olaf_rad at gmx.de> [20.10.2001 16:26]:
>
> #######################################################################
> #! /usr /bin/perl -w
#!/usr/bin/perl -w
>
> use AnyDBM_File;
> #use strict;
> #my %BLISS-DB;
> #my $datei;
> #my $wort;
> #$bloedsinn = 0;
>
>
> dbmopen (%BLISSDB, "./blis-db", 0644) || die "Kann DBM ./bliss-db nicht öffnen";
>
> SCHLEIFE: while (){
> print "Geben sie bitte den Dateinammen des Bliss-Symbols ein\n";
> $datei = <STDIN>;
> chomp($datei);
> last SCHLEIFE if ($datei eq "ende");
>
> print "Geben sie bitte den Namen des Bliss-Symbols ein\n";
> $wort = <STDIN>;
> chomp ($wort);
> $BLISSDB{"$datei"} = "$wort" ;
> }
> print "Oh, schon Feieraben!?"
print "Oh, schon Feieraben!?";
dbmclose(%BLISSDB);
> #######################################################################
> Und hier das Ausgabeprogramm:
> #######################################################################
>
> #! /usr/bin/perl -w
>
> dbmopen(%BLISSDB, "./bliss-db", 0644);
>
> foreach $schluessel (keys %BLISSDB) {
> #@ausgabe = keys(%BLISSDB);
> print "$schluessel hat den Wert $BLISSDB{$schluessel}\n";
> }
>
dbmclose(%BLISSDB);
meine doku meint, du solltest tie() und untie() nutzen.
$ ./in
Geben sie bitte den Dateinammen des Bliss-Symbols ein
abc
Geben sie bitte den Namen des Bliss-Symbols ein
def
Geben sie bitte den Dateinammen des Bliss-Symbols ein
ende
Oh, schon Feieraben!?
$ ./out
$ ls -a1
.
..
blis-db.db
bliss-db.db
in
out
# aha, dateiname anders ;-)
$ mv blis-db.db bliss-db.db
$ ./out
abc hat den Wert def
alternativ koenntest du auch in beiden scripten denselben dateinamen verwenden.
ansonsten sieht's gut aus.
bye
Jens
Mehr Informationen über die Mailingliste linux-l