Miscellaneous Control Structures
- Here's one way to do it:
sub card {} # from previous exercise while () { ## NEW ## print "Enter first number: "; chomp($first = <STDIN>); last if $first eq "end"; ## NEW ## print "Enter second number: "; chomp($second = <STDIN>); last if $second eq "end"; ## NEW ## $message = &card($first) . " plus " . card($second) . " equals " . card($first+$second) . ".\n"; print "\u$message"; } ## NEW ##Note the addition of the
whileloop and the twolastoperators. That's it! - Here's one way to do it:
{ print "Enter a number (999 to quit): "; chomp($n = <STDIN>); last if $n == 999; $sum += $n; redo; } print "the sum is $sum\n";We're using a naked block with aredoand alastto get things done this time. Start by printing the prompt and grabbing the number. If it's 999, exit the block withlastand print out the sum on exit. Otherwise, we add to our running total and useredoto execute the block again.