multi sub process_template($input, %params?) { multi sub process_template($input, $output, %params?) {
If we defined our functions that way we could call
process_template("from.tmpl", "to.html");
and it would know how to find the right subroutine leaving the %params hash empty.
Side note: this part is not yet implemented so the above code won't yet work.
There is a lot more one can do with signatures but I think this is enough for today.
Question mark (?) after the variable name means it is an optional varible.
multi sub process_template($input, %params?) {
tutorial/subroutines/optional_params.p6
#!/usr/bin/env perl6 use v6; # search the text within a file return 1 if found, 0 if not sub search ($text, $file) { my $fh = open $file, :r; for $fh.readline -> $line { if index($line, $text) > -1 { return 1; } } return 0; } # optional parameter sub search2($text, $file, $all?) { my $fh = open $file, :r; my $cnt = 0; for $fh.readline -> $line { if index($line, $text) > -1 { return 1 if not $all; $cnt++; } } return $cnt; }
Published on 2012-01-01