Multiple signatures
Named only parameters
Optional parametersmulti 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. examples/subroutines/optional_params.p6#!/usr/bin/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;
}
Copyright 2006, 2007, 2008, 2009, 2010 Gabor Szabo http://szabgab.com/ Index | TOC |
Follow me: