Es ist nur ein benanntes Argument, im Falle von Flags ein Boolean. Dies alles funktioniert, weil :pretty
ist syntaktischer Zucker für das Paar :pretty(True)
aka pretty => True
.
Sie entweder den Booleschen Wert
sub format($arg, Bool :$pretty = False) {
if $pretty { ... }
else { ... }
}
oder benutzen Sie seine Anwesenheit für Multi-Versand
multi format($arg) { ... }
multi format($arg, Bool :$pretty!) { ... }
Im ersten Beispiel verwenden können, wenn wir einen Standardwert (die nicht wirklich notwendig ist, da der undefinierte Wert auf False
boolisiert, aber es ist wohl das "Richtige" semantisch zu tun, im zweiten haben wir es zu einem erforderlichen Parameter gemacht, indem wir !
hinzugefügt haben.
Beachten Sie auch, dass benannte Argumente noch durch Kommas getrennt werden müssen, dh Sie können es als
format :pretty, 'a b c';