in reply to Thoughts on "one function, flexible arguments"?
Positional parameters and named parameters may be mixed, but each parameter cannot be both. It is not a good idea because that would preclude optional parameters, hence this is not supported.
use Kavorka; fun my_func(Str :$message!, Bool :$newline) { print "Message received: $message"; print "\n" if $newline; } my_func(message => 'x'); my_func(message => 'y', newline => 1); my_func({message => 'z'}); my_func(); # Named parameter `message` is required my_func(message => do { require DateTime; DateTime->now }); # Reference bless( {...) did not pass type constraint "Str"
|
---|