print "No parameters: " &func;
print " 1 parameter: " &func(1);
print " 2 parameters: " &func(12);
print " 3 parameters: " &func(123);
print " 4 parameters: " &func(1234);
subfunc() {
my $one = shift || return "At least one parameter expected
";
my $two = shift || "two";
my $three = shift || "three";
return "Too many parameters
" if @_;
return "$one $two $three
";
}
上面的例子会有下面的结果:
No parameters: At least one parameter expected
1 parameter: 1 two three
2 parameters: 1 2 three
3 parameters: 1 2 3
4 parameters: Too many parameters
Func子程序至少需要一个参数,但是最多能够带有三个参数,只要提供了的话。假如没有提供第二和第三个参数,那么这两个参数都会被缺省的值替代。如果没有提供参数或者提供了三个以上的参数,它就会给出一条警告信息。
数组元素事实上都是对传递来的标量的参照,同样的,也是可以修改的。下面的例子显示了如何修改一个参数:
my $count = 1;
&increment($count);
print "count=$count
";
sub increment()
要传递散列数组或者多个数组,你必须将参照传递给它们。(这样做效率会更高。)