for my $input () { chomp $input; (my $eval = $input) =~ s/(\d+)d(\d+)(.*)/$1*(int(rand$2)+1)+$3/e; printf "%10s = %i\n", $input, $eval; } __DATA__ 2d9+100 1d20+10 1d3+100 50d10-5 ####