In Independent routines§
See primary documentation in context for sub prompt
multi prompt() multi prompt($msg)
Prints $msg
to $*OUT
handle if $msg
was provided, then gets a line of input from $*IN
handle. By default, this is equivalent to printing $msg
to STDOUT, reading a line from STDIN, removing the trailing new line, and returning the resultant string. As of Rakudo 2018.08, prompt
will create allomorphs for numeric values, equivalent to calling val prompt
.
my $name = prompt "What's your name? "; say "Hi, $name! Nice to meet you!"; my $age = prompt("Say your age (number)"); my Int $years = $age; my Str $age-badge = $age;
In the code above, $age
will be duck-typed to the allomorph IntStr
if it's entered correctly as a number.