> For the complete documentation index, see [llms.txt](https://trizen.gitbook.io/perl6-rosettacode/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://trizen.gitbook.io/perl6-rosettacode/programming_tasks/n/named_parameters.md).

# Named parameters

Raku's support for optional parameters is much like Python's. Consider this declaration:

```perl
sub funkshun ($a, $b?, $c = 15, :$d, *@e, *%f) {
   ...
}
```

In the above signature:

So, if we defined the function like this:

```perl
sub funkshun ($a, $b?, :$c = 15, :$d, *@e, *%f) {
   say "$a $b $c $d";
   say join ' ', @e;
   say join ' ', keys %f;
}

# this particularly thorny call:

funkshun
    'Alfa', k1 => 'v1', c => 'Charlie', 'Bravo', 'e1',
    d => 'Delta', 'e2', k2 => 'v2';
```

would print this:

```
Alfa Bravo Charlie Delta
e1 e2
k1 k2
```
