#!/usr/bin/perl use strict; use warnings; my $lut = { 1 => sub { my $sum = shift (@_) + shift (@_); return $sum }, 2 => sub { my $mul = shift (@_) * shift (@_); return $mul }, 3 => sub { my $sub = shift (@_) - shift (@_); return $sub }, 4 => sub { my $div = shift (@_) / shift (@_); return $div }, }; my ($menu, $i, $j); while(1) { print q' Bitte einen Menüpunkt auswählen: addieren <1> multiplizieren <2> subtrahieren <3> dividieren <4> beenden <5> (oder sonst irgendwas) '; chomp($menu = ); die "Programm wird beendet ...\n" unless exists $lut->{$menu}; print "Bitte 2 Zahlen eingeben (hintereinander): "; $i = ; ($i, $j) = $i =~ /^(\d+\.?\d*)\D+(\d+\.?\d*)$/ or die "Das waren keine zwei Zahlen ...\n"; print "Ergebnis: ", $lut->{$menu}($i, $j), "\n"; }