perl 函数的参数列表

在perl中,定义一个函数的时候,不需要在圆括号内指定具体的参数,所有的参数都从@_ 这个列表中得到

代码示例:

sub test
{
    my ($a, $b) = @_;
    print qq{$a\t$b\n};
}

sub test
{
    my $a = shift;
    my $b = shift;
    print qq{$a\t$b\n};
}

这样写当然没有问题,但是有一点不足之处在于,缺少了圆括号内的形参列表,没法直观的一眼看出这个函数需要几个参数

所以perl 中函数定义的时候支持下面这种写法

sub test($$){
    my ($a, $b) = @_;
    print qq{$a\t$b\n};
}

圆括号内的$$不是内置变量的那个$$(返回当前脚本的pid), 这里的$$只是只是参数的个数,因为这个函数只有两个参数,所以是$$

当函数有3个参数时,可以写作($$$), 这里的$没有什么实际含义,只是代表参数个数。

时间: 2024-08-24 09:39:42

perl 函数的参数列表的相关文章

PHP函数可变参数列表的具体实现方法介绍

PHP函数可变参数列表可以通过_get_args().func_num_args().func_get_arg()这三个函数来实现.我们下面就对此做了详细的介绍. AD:2014WOT全球软件技术峰会北京站 课程视频发布 也许对于PHP初级程序员来说,对于PHP函数并不能完全熟练的掌握.我们今天为大家介绍的PHP函数可变参数列表的实现方法主要是利用func_get_args().func_num_args().func_get_arg()这三个系统函数来实现的,其中func_get_args()

php课外笔记--函数可变参数列表的实现

php课外笔记--函数可变参数列表的实现 php的函数方面非常强大,但对于一些php新手来说,理解有部分困难,不能完全熟练的掌握. php培训教程中,介绍一部分函数可变参数列表的实现方法: PHP函数可变参数列表的实现方法主要是利用func_get_args().func_num_args().func_get_arg()这三个系统函数来实现的,其中func_get_args()函数以数组的形式获得参数列表,具体用法参看手册. PHP函数可变参数列表代码如下: < ?php    /*   函数

php获取当前被调函数的参数列表

下面是php中的一个获取当前别调用函数的参数列表的测试程序,感受一下php类库的强大之处: // 测试获取参数列表 getArgs('aaa', 'bbb', 'ccc', 123, true); function getArgs() { // 获取传递给当前函数的所有参数 $allArgs = func_get_args(); echo json_encode($allArgs); echo '<br>---------------<br>'; // 获取从索引1开始的所有的参数

C语言函数可变参数列表

C语言允许使用可变参数列表,我们常用的printf函数即为可变参数函数,C标准库提供了stdarg.h为我们提供了这方面支持:该头文件提供了一些类型和宏来支持可变参数列表,包括类型va_list,宏va_start.va_arg.va_end: 可变函数参数定义方法: #include <stdarg.h> void func(int count,...){ va_list ap; int ix, tmp; va_start(ap, a); for(ix=0;ix < count; ++

由C/C++函数的参数列表中的数组长度所想

Why do C and C++ compilers allow array lengths in function signatures when they're never enforced? 这个是由于,很久前的一次(其实也没多久),编程过程中发现这种情况 #include<iostream> using namespace std; int dis(char a[1]) { int length = strlen(a); char c = a[2]; return length; }

关于main函数的参数列表 String[] agrs

String[] args 是专门用来接收命令行参数的. 2.例如:java ArrayTest07 abc def aaa JVM在调用ArrayTest07类的main方法之前,先 "abc def aaa"这个字符串以"空格"的方式分割,然后存储在String数组中. 实验代码如下: public class MainTest{     public static void main(String[] args)     {         System.ou

Python函数的参数

各种语言都有它自己特定的函数参数定义方法.Python语言对于函数参数的定义非常灵活,它提供了三种定义函数参数的方式.一起来看看吧,希望对大家学习python有所帮助. 1. Positional arguments位置参数 这是Python中最简单的给函数传递参数的方式.当调用函数时,调用代码中的函数参数与函数定义时的参数的顺序一致.例如: >>> defpower(x, y):... r = 1... while y > 0:... r = r * x... y = y - 1

Lua学习笔记3. 函数可变参数和运算符、转义字符串、数组

1. Lua函数可以接受变长数目的参数,和C语言类似,在函数的参数列表中使用(...)表示函数可以接受变长参数 lua函数将参数存放在一个table中,例如arg,那么#arg可以获得参数的个数 function func_no_p(...) local arg={...} for k,v in pairs(arg} do print(v ..",") end print("输入参数个数:".. #arg) end func_no_p(1,2,34,1,"

c语言重载(overriding in C)或函数不定参数个数

google一下 c overiding发现有这样一段英文解释: Because C doesn't require that you pass all parameters to the function if you leave the parameter list blank in the prototype. The compiler should only throw up warnings if the prototype has a non-empty parameter list