kbenson правильно, что вы можете заключить свой код в бесконечный цикл.Несколько более элегантный способ сделать это - создать функцию, которая проигрывает один раунд, а затем сделать бесконечный цикл вокруг вызова этой функции.Я использую здесь несколько хитростей, некоторые из которых могут быть для вас новыми, если вы чего-то не понимаете, спросите.Также я согласен с cjm, я не уверен, почему тип контента существует, поэтому я оставил его.
#!/usr/bin/env perl
use strict;
use warnings;
while (1) {
play_round();
print "Would you like to play again?: ";
my $answer = <STDIN>;
if ($answer =~ /no/i) {
print "Thanks for playing!\n";
last; #last ends the loop, since thats the last thing exit would work too
}
}
sub play_round {
print "Please type in either heads or tails: ";
my $answer = <STDIN>;
chomp $answer;
while ( $answer ne "heads" and $answer ne "tails" ) {
print "I asked you to type heads or tails. Please do so: ";
$answer = <STDIN>;
chomp $answer;
}
print "Thanks. You chose $answer. Now I'll flip.\n";
sleep 1;
my @coin = ('heads', 'tails');
my $side = $coin[int rand(2)];
print "And its ... $side! ";
if ( $answer eq $side ) {
print "You WON!\n";
} else {
print "Sorry, you lost. Try again!\n";
}
}