http://www.perlmonks.org?node_id=1196989


in reply to (Perl6) Signatures

Could this call also be written as
doctor( prop => "cricket bat" , number => 5)

Yes!

Regarding internal names: The proper way to write it is

sub f(:prop($internal)) { ... }

If want an alias, you can put another colon before the dollor:

sub f(:prop(:$alias)) { ... }

Easy rule: the dollar goes on the variable, the colon before a public name.

Re default values: correct.

BTW positional arguments are by default mandatory and become optional when a default value is provided. But named arguments are by default optional, why not the same trick?

I wasn't there for the decision, so I can only speculate, but maybe it's in analogy to options for command-line applications, which tend to be optional by default as well.

apparently means something like sub { $_ % 2 } . why two %% and is it possible to use a more familiar P5 syntax here? like where {$x % 2} ?

%% is the "divisible by" operator. You could write it as { $_ %% 2 } or { $_ % 2 == 0 } instead.