my @tests = ("1 + 2", "2*3", "(2 + 5) / 3", "print 'a test', "E = m * c**2", "3**2 + 2"); for my $expr (@tests) { # Does the string contain any characters that we # don't want? if ($expr =~ m![^0-9 + \- / * \( \) \s]!x) { print "$expr: Invalid\n"; } else { print "$expr = ", eval $expr, "\n"; } }