In Operators§
See primary documentation in context for prefix let.
sub prefix:<let>(Mu $a is rw)
Refers to a variable in an outer scope whose value will be restored if the block exits unsuccessfully, implying that the block returned a defined object.
my $name = "Jane Doe"; { let $name = prompt("Say your name "); die if !$name; CATCH { default { say "No name entered" } } say "We have $name"; } say "We got $name";
This code provides a default name for $name. If the user exits from the prompt or simply does not provide a valid input for $name; let will restore the default value provided at the top. If user input is valid, it will keep that.