in reply to Looking for a loop

Hello WisDomSeeKer34, and welcome to the Monastery!

Since you want the message to repeat (if necessary), you need a loop. In this case, changing if to while is all you need. :-)

Update: It might be clearer to use until here rather than while — that allows you to write the condition in the form of a specification. Also, the loop and the calls to <STDIN> should be placed in the subroutine:

sub choose { say "choose a number: 1 2 3 4 5 "; my $choice = <STDIN>; until ($choice >= 1 && $choice <= 5) { say "You have chosen the wrong number"; $choice = <STDIN>; } return $choice; }

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

Replies are listed 'Best First'.
Re^2: Looking for a loop
by thanos1983 (Parson) on May 28, 2018 at 09:32 UTC

    Hello Athanasius,

    I think WisDomSeeKer34 should also add chomp(my $choice = <STDIN>); :)

    BR / Thanos

    Seeking for Perl wisdom...on the process of learning...not there...yet!