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