#!/usr/bin/perl use strict; use warnings; use List::Util; my $dbfile = "learnIT.db"; open(my $dbh, "<",$dbfile) or die $!; my @db = <$dbh>; close $dbh; my $good = 0; my $bad = 0; my $count = 0; sub clear { my $sleeptime = shift; sleep("$sleeptime"); system("clear"); print("##############################\n## LearnIT by Florian L ##\n## ##\n## type 'exit' to quit... ##\n## ##\n### ###########################\n"); } #clear(0); sub getrand { my $random = int(rand(3)); return $random; } foreach (@db) { my (undef,$question_nr,$question, @answers) = split(/\.:\./, $_); my $randnum = getrand(); $count++; my @tmp = shuffle @answers; WHILELOOP: while( 1 ){ print qq~ $question_nr $question ------------------------------ 1) $tmp[0] 2) $tmp[1] 3) $tmp[2] 4) $tmp[3] Antwort:~; chomp(my $answer = ); if( $answer =~ /^\d$/ and $tmp[$answer] eq $answers[3] ){ print "\n-Korrekt-\n"; $good++; clear(2); last WHILELOOP; } elsif( $answer eq 'exit' ){ print "Von $count Fragen wurden $good richtig beantwortet, es wurden dabei $bad falsche Antworten gegeben.\n"; exit; } else{ print "Leider falsch, try again...\n"; $bad++; } } } print "\nVon $count Fragen wurden $good richtig beantwortet,\nes wurden dabei $bad falsche Antworten gegeben.\n";