#!/usr/bin/perl use strict; use warnings; use Readonly; Readonly my $SIGN => qr{[+-]?}; Readonly my $NUMBER => qr{\d+\.?\d*}; Readonly my $OP => qr{[\+\-\*\/]}; Readonly my $SPACES => qr{\s*}; Readonly my $VAL => qr{ $SPACES ( $SIGN $NUMBER ) $SPACES }x; Readonly my $EXPR => qr{ $SPACES ( $SIGN $NUMBER $SPACES $OP $SPACES $SIGN $NUMBER ) $SPACES }x; print "Rechenbeispiel eingeben: "; my $task = ; chomp($task); my ($expr, $guessed_value) = $task =~ m{^ $EXPR = $VAL $}x;# die "unvalid expression!\n" unless $expr; die "unvalid value!\n" unless $guessed_value; my $true_value = eval ($expr); print $guessed_value == $true_value ? "Rechnung ist richtig!\n" : "Rechnung ist falsch! Ergebnis ist $true_value\n";