#!/usr/bin/perl use strict; use warnings; print "[Instructions as before, ctrl-c or \"quit\" to exit]\n"; OUTER: { my ($x, $y) = map { int rand $_ } qw/11 11/; INNER: { print "$x x $y = "; local $_ = ; chomp; last OUTER if m/^quit$/; redo INNER unless m/^\d+$/; if ($_ == ($x*$y)) { print "Right!\n"; redo OUTER } else { print "Try again.\n"; redo INNER } } }