#!/usr/bin/perl use strict; use Getopt::Std; use DB_File; my %opt; my $dbpath = 'Lernkarte.db'; getopts('b', \%opt); if( $opt{b} ){ tie my %db, 'DB_File', $dbpath, O_CREAT | O_WRONLY, 0644, $DB_BTREE; open my $handle, 'ger-eng.txt'; my $count = 0; while(<$handle>){ chomp; next if /^#/; $db{$count++} = $_; } untie %db; } else { tie my %db, 'DB_File', $dbpath, O_RDONLY, 0644, $DB_BTREE; my $size = scalar keys %db; do { my @entry = split / :: /, $db{int rand $size}; eval "require Lingua::DE::ASCII"; ($opt{u} || $@ ) and my $keep_umlaut = 1; my @de = split / \| /, $entry[0]; my @en = split / \| /, $entry[1]; print "-----\n"; foreach ( 0..$#de ) { print < ${$keep_umlaut ? \$de[$_] : \Lingua::DE::ASCII::to_ascii( $de[$_])} EN => $en[$_] FLASHCARD } }while(<>); untie %db; }